0

実際、私は現在の作業ディレクトリのサブディレクトリにファイルを作成する方法について一般的に混乱していますが、特にそれが非表示になっている場合はそうです。

Sayには、呼び出しchar* backupで作成しているファイルの名前が含まれています。open()

と呼ばれる、すでに存在する隠しフォルダがあるとし.mybackupます。

内部にファイルを作成するにはどうすればよい.mybackupですか?うまくいけば、2回chdirすることなく。

私が今いるところ:

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

2 に答える 2

1

ファイル名の前に、配置するディレクトリを追加します。または、chdir2回実行することもできます。

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 filewrite;
filewrite = open(バックアップ、O_CREAT | O_RDWR、0644)

ここで、バックアップには「folder \ filename」が含まれます。ここで、folderは現在のフォルダーからの相対的なものです。

于 2012-11-18T04:02:01.753 に答える