On 05/10/10 02:51, Bruno Haible wrote:
> Joachim Schmitz writes:
>> Doesn't work here, same problem:
>> Read 68 from /etc/resolv.conf...
>> FAIL: test-read-file
>>
>> And to clarify: the problem is not the symlink, it is the different
>> personalities in NonStop. A symlink inside the OSS personality wouldn't
>> be a problem, a symlink to an EDIT file in Guardian is, in respect to
>> the size stat() reports.
> 
> This means, you have a problem with stat() or with the S_ISREG macro.
> 
> In Unix, when S_ISREG of a file is true, then you should be able to read
> exactly as many bytes from the file as stat() returned in the st_size.
> 
> Therefore on NonStop Kernel, so that stat() and S_ISREG works on all files,
> one of the following needs to be done:
>   a) stat() needs to be fixed or wrapped, so that it sets the st_size
>      to 68 instead of 2144 in said situation.
>   b) stat() needs to be fixed or wrapped, so that it sets the st_mode
>      field to a value for which S_ISREG returns 0.
>   c) S_ISREG needs to be fixed or replaced, so that it returns 0 when
>      given as argument the st_mode value from an statbuf for said file.

Well a file can grow between stat and read.
Also `stat /proc/cmdline` returns 0 here,
but the file has data.

Reply via email to