のサンプルコードに従っています。ハッキング:The Art of Exploitation次のコマンドを実行する際に問題が発生しています。ディレクトリが存在しないときに `open`で相対ファイルが開く
datafile = (char *) ec_malloc(20);
strcpy(datafile, "/tmp/notes");
fd = open(datafile, O_WRONLY|O_CREAT|O_APPEND, S_IRUSR|S_IWUSR);
if (fd == -1)
fatal("in main() while opening file");
エラーメッセージは次のとおりです。「いいえそのようなファイルやディレクトリは」前のビットがカスタムfatal()
機能を使用して作成され
[!!] Fatal Error in main() while opening file: No such file or directory
。
/tmp/notes
はプログラムの場所には存在しませんが、O_CREAT
フラグがそれを考慮する必要があることに注意してください。私は".\\tmp\\notes"
にstrcpy
セグメントを切り替えようとしましたが、結果は同じでした。プログラムが呼び出されるディレクトリ内にまだ存在しないディレクトリを作成するにはどうすればよいですか?
私はWindows 10でMinGWを使用していて、w/gcc
をコンパイルしています。
ああ、開いてもディレクトリは作成されません。パスを単に「ノート」に変更すると、完全に機能しました。私はO_CREATフラグを誤解しているようです。ありがとう! – aiokos