Posix
open() 返回新的文件描述符 posix
我必須在 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
到源文件中來獲得)。