我打开了一个普通文件,它充当了记录数据库。我打开它:
fd = open ("file", O_CREAT | O_APPEND | O_RDWR, 0644);
然后在我的find_record
函数中,我将偏移移动到开头。
ret_val = lseek(fd, 0, SEEK_SET);
它抛出ESPIPE
错误。现在我不知道发生了什么。
我的文件描述符是否被视为管道?如果有,为什么?
lseek
实际上有效吗?它应该是ret_val
不是-1。
答案 0 :(得分:1)
无法保证在成功通话时会重置errno
。
如果返回值表示错误,则只应检查errno
的值。