ファイル システムの操作に疑問を感じました。プログラムを実行する別のディレクトリでファイルを開きます。
次のディレクトリでプログラムを実行するとします: /home/example で、プログラムを別のディレクトリ、たとえば home/example/Inside/Test に移動し、この最後のディレクトリにあるすべての txt ファイルを開きます。
わかりましたので、小さなコード:
/*variables*/
struct dirent *strdir;
DIR *diro;
struct stat statbuffer;
char *path = /home/example/Inside/test
diro = opendir( path )
/*cheked it opened properly*/
while ( (strdir = readdir(diro)) != NULL ){
stat(strdir->d_name, &statbuffer); /*Gets information of file*/
if (S_ISREG(statbuffer.st_mode)){
/*its regular type*/
/*check its of type txt*/
???
fopenを使っていたので載せまし???
たが、うまくいきません。もちろん、そのファイルは /home/example に存在しないため、そうではありません。オープンも同様です。
したがって、ディレクトリとファイル名を単一の文字に連結してフルパスを取得できるかもしれませんが、それはちょっと醜いように聞こえます...
もう 1 つのアイデアは、stat によって提供された情報を使用することですが、それを機能させる方法がわかりません。ハードリンク?