Posix

open() 返回新的文件描述符 posix

  • November 9, 2014

我必須在 posix 中設置 open() 的返回值。如何返回 Linux 手冊頁中所述的“新文件描述符”:

返回值

 open(), openat(), and creat() return the new file descriptor, or -1
 if an error occurred (in which case, errno is set appropriately).

編輯:謝謝金發姑娘!我沒有朝正確的方向看。我正在做的是更正這個系統呼叫的返回值。顯然它返回了錯誤的東西。

要打開文件,請使用如下構造:

int fd;
if ((fd = open(path, flags)) < 0) {
   /* An error occurred, the reason is in errno */
   int _errno = errno; /* Save errno value */
   fprintf(stderr, "Failed opening file '%s': %s\n", path, strerror(_errno));
   return;
}
/* The file was successfully opened */

因此,您只有一個返回值,通常是文件描述符。如果是-1,則表明發生了錯誤。發生的錯誤儲存在errno變數中(您可以通過將其包含errno.h到源文件中來獲得)。

引用自:https://unix.stackexchange.com/questions/166982