を使って多くのファイルを作成しようとしていますC
。私は終わったmkdir -p directory && touch directory/filename
。私のループが名前に特殊文字を含むファイルに到達するとエラーが発生します。
syntax error :" unexpected "("
助けてください?
ベストアンサー1
あなたの問題system()
はsystem()
。これはまた、結果シェルが独自の構文を使用してコマンド全体を評価するため、シェルが特別に処理する文字をエスケープする必要があることを意味します。
Cでファイルとディレクトリを生成するより強力でエラーの少ない方法は、この操作に提供される実際のC関数、つまりおよびmkdir()
/open()
を使用することですcreat()
。
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
int
main(void)
{
char dir[] = "some(directory)with*special[characters]";
char file[] = "some(file)with*the[same]characters";
int fd;
if (mkdir(dir, 0755) == -1)
err(EXIT_FAILURE, "creating directory failed");
if ((fd = open(file, O_WRONLY|O_CREAT|O_TRUNC, 0644)) == -1)
err(EXIT_FAILURE, "creating file failed");
close(fd);
/* ... */
return 0;
}