C 如何在隐藏目录中创建文件?

C 如何在隐藏目录中创建文件?,c,file-io,file-copying,C,File Io,File Copying,实际上,我只是对如何在当前工作目录的子目录中创建文件感到困惑,尤其是在文件隐藏的情况下 假设char*backup包含我们使用open()调用创建的文件名 假设已经存在一个名为.mybackup的隐藏文件夹 如何在.mybackup中创建文件?希望不会发生两次 到目前为止我所处的位置: int filewrite; filewrite = open(backup, O_CREAT | O_RDWR, 0644); 在文件名前面加上您希望放置的目录。或者,chdiring两次也是可以接受的 ch

实际上,我只是对如何在当前工作目录的子目录中创建文件感到困惑,尤其是在文件隐藏的情况下

假设
char*backup
包含我们使用
open()
调用创建的文件名

假设已经存在一个名为
.mybackup
的隐藏文件夹

如何在
.mybackup
中创建文件?希望不会发生两次

到目前为止我所处的位置:

int filewrite;
filewrite = open(backup, O_CREAT | O_RDWR, 0644);

在文件名前面加上您希望放置的目录。或者,
chdir
ing两次也是可以接受的

char* backup = "backup.sql";   // Assuming this comes from somewhere else (not constant)

const char* targetDir = ".mybackup/";   // (No leading slash)

// Allocate a buffer for the filename (remembering +1 for null-terminator!)
char* path = (char*)malloc(strlen(targetDir) + strlen(backup) + 1);

strcpy(path, targetDir);   // Copy in the target directory part
strcat(path, backup);      // Copy in the filename part


filewrite = open(path, O_CREAT | O_RDWR, 0644);  // Open the file

free(path);   // Free the buffer
int文件写入; 文件写入=打开(备份,O|U创建| O|U RDWR,0644)
其中备份包含“folder\filename”,其中文件夹与您所在的文件夹相对,因此,(在Unix/Linux!)备份需要包含
/.mybackup/x.txt
?因此,(在Unix/Linux!)备份需要包含
/.mybackup/x.txt
?@Aerovistae去掉前导斜杠。如果没有它,它将成为一个相对路径(相对于当前目录)。
open
不是一个C库调用,而是来自您的操作系统。请用这些信息适当地标记您的问题。 int filewrite; filewrite = open(backup, O_CREAT | O_RDWR, 0644)