這裏要用位或,而不是與。在頭文件fcntl.h中,可以見到O_WRONLY的定義值是"01",八位二進制就是"00000001",O_CREAT是八進制"0100",二進制就是"01000000",豎線“|”不是“與”,是逐位“或”運算,O_RWONLY|O_CREAT合起來就是"01000001“,這兩個"1"的位置並不沖突,在這裏,open()函數得到的值是編譯器已經合並好了的值"01000001",open()函數可以根據這兩個獨立的二進制"位"知道是讀寫打開或者創建。 後面類推.
上一篇:O_CREAT, S_IRUSR下一篇:S_IWUSR 為什麽不是&&而是壹個