新しいファイルに書き込むために、私は次のことを行います:
// some code
...
pfd[i][0] = open(argv[j+1],O_CREAT|O_WRONLY,0600);
質問:
との使用に違いはあります
openかfopen?モード
openで既存のファイルを開くためにどのように使用できますか?append
openPOSIXシステム用です。他のシステムへの移植はできません。fopenはC標準の一部であるため、すべてのC実装で機能します。openを返すファイル記述子をfopen返す違いを無視していますFILE *。
O_APPEND追加モードで開くために使用します。
open移植性のないPOSIX関数であり、fopen移植性のある標準のC関数であるということです。O_APPENDに呼び出すときに指定します。open1)はい。違いがあります:バッファ付きまたはバッファなしのI/O。
open()RAWファイルハンドルを提供します(プログラムとファイルシステム内のファイルの間にバッファはありません)。
fopen()ストリームバッファモードでファイルを操作する権限を与えます。たとえば、データを1行ずつ(\ 0)読み取り/書き込みできます。
、、、、のような関数を使用するとfprintf()、
大きな違いがわかります。fscanf()fgets()fflush()
ps:fopen()より良くはありませんopen()。それらは異なるものです。ストリームバッファ(fopen)が必要な場合もあれば、バイトごとの作業(open)が必要な場合もあります。
ストリームに関する優れたリファレンスは次のとおりです。http ://www.cs.cf.ac.uk/Dave/C/node18.html#SECTION001820000000000000000
2)追加モードで開くには、O_APPENDフラグを追加します。
open(argv[j+1],O_CREAT|O_APPEND|O_WRONLY,0600);