我已经找到了一种实现我想要的功能的方法,但它似乎很不规范。我只是想做一件简单的事情。
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");