私は自分がやりたいことをする方法をすでに見つけていますが、それは汚いようです。簡単なことをやりたいだけ
sprintf(serv_name, "Fattura-%i.txt", getpid());
fd = open(serv_name, PERMISSION | O_CREAT);
if (fd<0) {
perror("CLIENT:\n");
exit(1);
}
新しいファイルをプログラムのディレクトリに作成するのではなく、サブディレクトリに直接作成したいと考えています。たとえば、私のファイルは ./program/ にあります。ファイルが ./program/newdir/ に作成されるようにします。
ファイルに必要なパスを文字列「serv_name」に直接入れようとしましたが、次のようになりました
sprintf("./newdir/fattura-%i.txt",getpid());
また、/ ではなく \\ を試しました。これはどのように行うことができますか?私が見つけた唯一の方法は、プログラムの最後に次のように入力することでした:
mkdir("newdir",IPC_CREAT);
system("chmod 777 newdir");
system("cp Fattura-*.txt ./fatture/");
system("rm Fattura-*.txt");