為了更好的控製文件的打開方式,可以使用sysopen()函數:
useFcntl;
sysopen(FH,$filename,O_RDWR|O_CREAT,0666)
ordie"Can'topen$filenameforreading/writing/creating :$!";
函數sysopen()帶有四個參數,第一個是同open()函數類似的檔案句柄參數,第二個參數是不帶模式資訊的檔名,第三個參數是模式參數,由Fcntl模組提供的邏輯OR運算組合起來的常數構成,第四個參數(可選),為八進位屬性值(0666表示資料文件,0777表示程式)。如果檔案可以被打開,sysopen()傳回true,如果開啟失敗,則傳回false。
不同於open()函數,sysopen()不提供模式說明的簡寫方式,而是把一些常數組合起來,而且,每個模式常數有唯一的含義,只有透過邏輯OR運算才能將它們組合起來,你可以設定多個行為的組合。
O_RDONLYRead-only
O_WRONLYWrite-only
O_RDWRReadingandwriting
O_APPENDWritesg完成
O_EXCLErrorifthefilealreadyexisted(usedwithO_CREAT)
當你需要小心行事的時候,就使用sysopen()函數,例如,如果你打算將內容新增至文件中,如果文件不存在,不建立新文件,你可以這樣寫:
sysopen(LOG,"/var/log/myPRog.log",O_APPEND,0666)
ordie"Can' topen/var/log/myprog.logforappending:$!";
以上就是Perl的經典用法:用Sysopen()進行更多的控制的內容,更多相關文章請關注PHP中文網(www.php.cn )!