システム コールを使用してバイナリ ファイルを開こうとしています。関数 (fopen など) を使用できません。
if ((fd2 = open("RandomStruct.bin",O_RDWR|O_CREAT)) == -1)
err_sys("Failed to open binary\n");
このコード行は間違っていますか? ありがとう!ところで、「:エラー0」が表示されますOo
システム コールを使用してバイナリ ファイルを開こうとしています。関数 (fopen など) を使用できません。
if ((fd2 = open("RandomStruct.bin",O_RDWR|O_CREAT)) == -1)
err_sys("Failed to open binary\n");
このコード行は間違っていますか? ありがとう!ところで、「:エラー0」が表示されますOo
いいえ、正しくありません。O_CREATフラグを指定する場合、open()には別の引数が必要です。これは、新しいファイルの許可ビットです。例えば
open("RandomStruct.bin",O_RDWR|O_CREAT, 0755);
他の回答で述べたようにファイルパーミッションを追加する必要がありますが、システムコールではなく、 libcのopen()
ように、システムコールを呼び出す別の関数(またはラッパー)です。Linuxを使用していると仮定すると、代わりにsyscall()をチェックする必要があると思います。これにより、番号(この場合)と引数(割り当てでシステムコールを使用する必要がある場合)を渡すことでシステムコールを直接呼び出すことができます。fopen()
open
SYS_open