システムコールのopen
とlibcのfopen()
の対応をまとめました。
システムコール | Cライブラリ関数 | 動作 |
---|---|---|
open("file", O_RDONLY) | fopen("file", "r") | 読み込み |
open("file", O_RDWR) | fopen("file", "r+") | 現存読み書き |
open("file", O_WRONLY|O_CREAT|O_TRUNC, 0666) | fopen("file", "w") | 書き込み |
open("file", O_RDWR|O_CREAT|O_TRUNC, 0666) | fopen("file", "w+") | 新規書き込み |
open("file", O_WRONLY|O_CREAT|O_APPEND, 0666) | fopen("file", "a") | 追加書き込み |
open("file", O_RDWR|O_CREAT|O_APPEND, 0666) | fopen("file", "a+") | 追加読み書き |
個人的にはopenの方が柔軟性があるので多用しています。