關於qt在linux下使用open,write,close等檔案操作的筆記
阿新 • • 發佈:2019-01-23
在看一些例程的時候發現 ,linux下qt使用檔案操作的時候跟用c語言編寫的函式不一樣
linux下在qt中使用open
#include <fcntl.h>
fd = ::open(“path”,O_RDWR|O_NONBLOCK);
linux下在c中使用open
#include <fcntl.h>
fd = open(“path”,O_RDWR|O_NONBLOCK);
這是為什麼呢?
還有如果想關閉剛才開啟的fd 要使用close(fd)函式。但是qt下close()是關閉當前QWidget。
於是在我就去找了度娘,度娘不負我啊啊 啊啊 。找到了這樣的解釋:::
為了區分成員函式與全域性函式,就要在全域性函式前面增加"::"雙冒號的標誌。
這樣就沒有什麼疑問了吧歐了。!!!
//度娘 搜到的 ^_^ 別人部落格裡的東東奧
http://bytes.com/topic/c/answers/856501-use-close-int-unistd-h-qt
另,林銳的《高質量C/C++程式設計》v1.0 p58,關於全域性函式和類成員函式同名時,如何在類中使用全域性函式的說明:
不論兩個 Print 函式的引數是否不同,如果類的某個成員函式要呼叫全域性函式 Print,為了與成員函式 Print 區別,全域性函式被呼叫時應加‘::’標誌。如
::Print(...);// 表示 Print 是全域性函式而非成員函式