0

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

Saychar* backup包含我们通过open()调用创建的文件的名称。

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

如何在其中创建文件.mybackup?希望没有 chdir'ing 两次。

到目前为止我在哪里:

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

2 回答 2

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
于 2012-11-18T04:01:33.173 回答
1
int 文件写入;
文件写入 = 打开(备份,O_CREAT | O_RDWR,0644)

其中备份包含“文件夹\文件名”其中文件夹与您所在的文件夹相对

于 2012-11-18T04:02:01.753 回答