真的,我只是对如何在当前工作目录的子目录中创建文件感到困惑,但特别是如果它被隐藏了。
说char* backup
包含我们通过open()
调用创建的文件的名称。
假设存在一个名为.mybackup
的隐藏文件夹。
如何在.mybackup
内创建文件?希望没有两次chdir'ing。
我到目前为止:
int filewrite;
filewrite = open(backup, O_CREAT | O_RDWR, 0644);
答案 0 :(得分:1)
在文件名前添加您希望放置的目录。或者,chdir
两次也是可以接受的。
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
答案 1 :(得分:1)
int filewrite; filewrite = open(backup, O_CREAT | O_RDWR, 0644)
其中backup包含“folder \ filename”,其中文件夹是你所在的文件夹