0

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

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

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

ret_val = lseek(fd, 0, SEEK_SET);

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

真的lseek在工作吗?它应该是因为ret_val不是-1。

4

1 回答 1

1

无法保证errno在成功调用时会重置。

您应该只检查errno返回值是否指示错误的值。

于 2014-11-17T09:51:42.157 回答