在许多情况下,我已经看到 fstat 在文件描述符被分配给 open 的情况下,直接执行了调用。/p>
fd = open(file, flags, mode);
fstat_result = fstat(fd, &stat_log);
如果已经执行了读取的呼叫,FSTAT的行为会有所不同吗?
fd = open(file, flags, mode);
read_result = read(fd, buffer, buffersize)
fstat_result = fstat(fd, &stat_log);
和"行为不同",我的意思是:在这种情况下,FSTAT的返回值是FSTAT的返回值或" struct Stat"缓冲区输出不同的?
现在,stat_log的大小相关成员是否代表文件的大小仍将读取?
如果我已经阅读到文件的末尾,此后是否会导致FSTAT进行呼叫?(fstat返回-1)
此FSTAT文档似乎并未表明文件描述符需要引用尚未从中读取的文件。您是否找到了任何可以说明的?
您可以在打开文件后但在fstat
之前从文件中读取。唯一会改变的是由于阅读而改变的任何属性。唯一的候选人是atime
,这是读取的时间,这可能比open
的时间晚。