簡體   English   中英

uv_fs_open:Windows上的標志和模式

[英]uv_fs_open: flags and mode on Windows

官方文檔中我們有uv_fs_open的以下簽名:

int uv_fs_open(uv_loop_t* loop, uv_fs_t* req, const char* path, int flags, int mode, uv_fs_cb cb);

據說它相當於open(2)

從我在網上找到的最認可的教程 ,我們有這個(強調我的):

flags和mode是標准的Unix標志。 libuv負責轉換為適當的Windows標志

因此,我認為以下聲明在Linux和Windows上都有效:

uv_fs_open(my_loop, my_req,  my_filename, O_RDWR | O_CREAT, S_IRWXU, my_callback);

實際上,它在Linux上運行得很好。
無論如何,在Windows上我收到以下錯誤:

'O_RDWR':未聲明的標識符
'O_CREAT':未聲明的標識符
'S_IRWXU':未聲明的標識符

這是預期的結果(因此教程是錯誤的)?
我該怎么做才能調用uv_fs_open才能在兩個平台上運行?
Windows上使用的標志模式的值是什么?

為了能夠在Windows上使用uv_fs_open ,用戶必須:

  • 顯式包含fcntl.h ,因為uv-win.h不包含它(有關詳細信息,請參閱問題)

  • 使用_O_CREAT_O_RDWR_等代替O_CREATO_RDWR和其他(有關詳細信息,請參閱官方文檔

類似的東西適用於模式 ,可用常量的詳細信息可以在鏈接文檔中找到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM