1
衆所周知,在C調用open()
將返回文件描述符,給定pathname
和可選flags
。僅在POSIX上打開僅適用於文件
int fd;
if ((fd = open(pathname, O_RDONLY)) == -1) {
printf("Could not open file\n");
return;
}
在man page for open()
,標誌O_DIRECTORY
定義其中:
如果路徑是不是一個目錄,導致open失敗。如果在FIFO或磁帶 設備上調用opendir(3),則在內核版本2.1.126中添加了此 標誌,以避免拒絕服務問題 。
但我似乎無法找到像O_FILE
,這將導致open()
失敗上的目錄,而不是文件。
有這樣一個可以傳遞到open()
標誌或確定pathname
是一個文件,而不是調用stat()
的另一種方式?