2016-11-29 4 views
0

ある特定のプログラムで次のコードを試していますが、入れないでディレクトリを作成しています。ディレクトリを作成し、そのディレクトリにC言語を使ってファイルを作成するプログラムを書く

ファイルの作成は、ディレクトリから、つまりフォルダの隣にファイルを作成することだけです。

mkdir(dir2, 0666); 

DIR *dr1 = opendir(dir2); 

fl = open("copy.txt", O_WRONLY | O_CREAT | O_TRUNC, 0644); 

write(fl, buff, 512); 

close (fl); 
closedir(dr1); 
+0

[学生への公開書簡](http://meta.softwareengineering.stackexchange.com/q/6166) – xenteros

+1

['opendir'](http://man7.org/linux/man-pages/man3/ opendir.3.html)関数は、あなたが見ていると思われることをしません。 ['chdir'](http://man7.org/linux/man-pages/man2/chdir.2.html)機能が必要です。 –

+1

dup of http://stackoverflow.com/questions/22949500/create-file-inside-a-directory-c – malat

答えて

0

あなたは、ファイルの名前にフォルダのパスを追加する必要があります。

fl = open(strcat(directory_path, "/copy.txt"), O_WRONLY | O_CREAT | O_TRUNC, 0644); 

directory_pathが作成したフォルダの場所を格納する文字列です。

char directory_path[100]; 
strcpy(directory_path, dir2); 

strcatstring.hで定義された2つの文字列を、連結するために使用される機能です。

+0

非常に助けてくれてありがとう –

1

あなたはこの希望:あなたがここにopendirアンclosedirを必要としない

mkdir(dir2, 0666);  // create directory 
          // construct the filename "directory/copy.txt" 
char filename[200]; 
strcpy(filename, dir2); 
strcat(filename, "/"); 
strcat(filename "copy.txt");  

fl = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0644); 

write(fl, buff, 512); 

close (fl); 

を。

免責事項:これはデモンストレーションの目的でのみエラーチェックとテストされていないコードです。

関連する問題