回答
sysopen
圍繞open(2)
內核系統調用一個瘦包裝(參數直接對應),而open
是一個更高層次的包裝,使您能夠做重定向,管道等
除非你正在使用一個特定的設備,需要一些特殊的標誌,通過open(2)
時間,對於磁盤上的普通文件,你應該罰款open
。
雖然 – lexer
我還是沒有看到其中的區別 @lexer:真的沒什麼可說的 - 剩下的就是了解系統調用是什麼,以及open(2)的特定接口是什麼,所有這些都是OS的東西,而不是Perl特有的。 –
@lexer:答案是現貨。如果您需要真實生活,請考慮「O_WRONLY | O_EXCL | O_CREAT」組合,即「如果不存在,則創建並寫入」。使用'-f ...或打開...'而不是隻是要求競賽條件。 – Dallaylaen
引述perlopentut:
如果你想在外殼的簡便,Perl的開放是 肯定要走的路。另一方面,如果你想要比C的簡單化fopen(3S)提供的更精細的 精度,你應該看看Perl的sysopen,它是open(2)系統調用的直接鉤子。 這確實意味着它有更多的參與,但這是精度的價格。
由於Perl是用C寫的,這兩種方法有可能最終使open(2)
系統調用。不同的是,open()
在Perl內置了一些細微使開放,管道和重定向非常容易。但同時,open()
帶走了一些靈活性。它不具有sysopen()
中的Fcntl
功能,也沒有掩蔽功能。
大多數情況下只需要open()
。
您能否提供'sysntn'中'Fcntl'和屏蔽功能的示例? – lexer
在這裏有一些很好的口罩示例:http://perldoc.perl.org/perlopentut.html#Permissions-agrave-la-mode,以及上面鏈接土地的相同鏈接中的部分有很好的示例'Fcntl'功能。該部分以「這是你可以用sysopen完成的事情開始,你不能用常規打開。」請享用! –
- 1. Perl中的'eq'和'=〜'有什麼區別?
- 2. 'open -a TextMate.app'和'mate'有什麼區別?
- 3. Perl中'for'和'foreach'有什麼區別?
- 4. Perl中grep和map有什麼區別?
- 5. 「perl test.pl」和「./test.pl」有什麼區別?
- 6. 在Strawberry Perl中,perl \ lib和perl \ site \ lib有什麼區別?
- 7. c中的open和creat系統調用有什麼區別?
- 8. OCaml中的include,require和open有什麼區別?
- 9. Firefox中的open()和window.open()有什麼區別?
- 10. 在Eclipse中「Open Type」/「Open Resource」有什麼區別?
- 11. XMLHttpRequest對象的open()和send()方法有什麼區別?
- 12. 有什麼區別`和$(Bash中有什麼區別?
- 13. 爲什麼Perl的sysopen報告成功,但$!有錯誤?
- 14. 我的($ variableName)和我的$ variableName在Perl中有什麼區別?
- 15. Perl正則表達式中的\ 1和$ 1有什麼區別?
- 16. Perl中的system,exec和反引號有什麼區別?
- 17. Perl中的對象和類之間有什麼區別?
- 18. Perl中的哈希和哈希引用有什麼區別?
- 19. C和Perl中的system()有什麼區別?
- 20. Perl中的新Some :: Class和Some :: Class-> new()有什麼區別?
- 21. Perl中的子程序和腳本有什麼區別?
- 22. Office Automation,VSTO和Open XML SDK有什麼區別?
- 23. openid,oauth1.0,oauth1.0a,oauth2.0和open id connect有什麼區別?
- 24. Perl 5中父和基有什麼區別?
- 25. 在Perl中`use base`和@ISA有什麼區別?
- 26. 在Perl中,s/^ \ s + //和s/s + $ //有什麼區別?
- 27. 在Perl中,「if defined $ count」和「if $ count」之間有什麼區別?
- 28. Perl中詞法和動態範圍界定有什麼區別?
- 29. 在Perl中,`use lib`和`lib-> import`有什麼區別?
- 30. 函數調用和goto&NAME在Perl中有什麼區別?
這不是一個內部的差異,這是一個外部的差異,就像Blagovest Buyukliev所說。 – ikegami
@lexer,我補充了更多的解釋。希望能幫助到你。 –