我已经找到了一种方法来做我想做的事,但它看起来很脏。我只想做一件简单的事
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");