關於open函式,乙個很容易出錯的問題

2021-08-02 09:18:41 字數 511 閱讀 7109

在編譯乙個開源軟體的時候,在一處寫檔案的地方,發現總是許可權有問題。

**如下:

fd = open(filename, o_wronly | o_creat | o_excl, 644)

這麼一看,好像沒什麼問題,

通過open建立乙個檔案,許可權為644的。

網上有關於這個函式引數的介紹:

o_wronly 可讀可寫

o_creat 若此檔案不存在,則建立它,用此選項的時候,需同時說明第三個引數mode

o_excl 如果同時指定了o_creat,則檔案已經存在,則出錯。這可測試乙個檔案是否存在,如果不存在則建立此檔案成為乙個原子操作。

mode為644.

按我們理解,644為wr* *r* *r*,

那問題在**呢,

我們知道,通常用來表示許可權的777,644這種的,實際是8進製的,

而如果我們直接寫644,則c語言會當成10進製的數來處理,則會出問題。

8進製的644,需要前面加乙個0,為0644

mySql update容易出錯的乙個地方

update語句的正確語法示例 update tb set col1 value1 col2 value2 col3 value3 where col0 value0 andcol5 value5 上例是正確的做法,不合理的update應該是什麼樣子的呢,是將set後接的並列字段分隔符改為 and ...

Ext使用TabPanel的乙個很容易忽略的問題

在使用tabpanel時需要注意 1 在建立ext.tabpanel時deferredrender配置項經常會被忽略。該配置項的預設值是true。true表示只有在使用者第一次訪問 選項卡時,該選項卡的panel才會被渲染。所以當我們有可能使用指令碼操作選項卡時,謹記將該配置項設定為false。2 ...

關於 的乙個容易被忽略的問題

a 0,1,2,3,0,1,2 5 a 4 3 在一般來說,所有的使用者都知道元組一旦被建立就不可更改,除非用乙個新的元組來覆蓋它,但是上面的示例有了不同的反饋。執行之後得到了異常 typeerror tuple object does not support item assignment 在這個...