lseek给ESPIPE错误

时间:2014-11-17 09:48:36

标签: c file lseek

我打开了一个普通文件,它充当了记录数据库。我打开它:

fd = open ("file", O_CREAT | O_APPEND | O_RDWR, 0644);

然后在我的find_record函数中,我将偏移移动到开头。

ret_val = lseek(fd, 0, SEEK_SET);

它抛出ESPIPE错误。现在我不知道发生了什么。 我的文件描述符是否被视为管道?如果有,为什么?

lseek实际上有效吗?它应该是ret_val不是-1。

1 个答案:

答案 0 :(得分:1)

无法保证在成功通话时会重置errno

如果返回值表示错误,则只应检查errno的值。