-2
プログラムに入力されたファイルの種類を数えようとしています。したがって、echo.cのCソースを入力すると、echo.hはHeaderとなります。しかし、echo/root
のようにディレクトリを入力した場合は、directory
タイプとしてカウントされますが、現在はexe
タイプとしてカウントされます。私は他のすべての仕事を手に入れました。stat()
を使って、argv
がディレクトリであるかどうかを調べる方法を考えようとしています。相続人stat()を使ってコマンドライン引数がディレクトリであるかどうかをチェックする方法?
私がこれまでにしたもの:
#include <sys/stat.h>
int main(int argc, char* argv[]){
int cCount = 0;
int cHeadCount = 0;
int dirCount = 0;
for(int i = 1; i < argc; i++){
FILE *fi = fopen(argv[i], "r");
if(!fi){
fprintf(stderr,"File not found: %s", argv[i]);
}
else{
struct stat directory;
//if .c extension > cCount++
//else if .h extension > cHeadCount++
else if(stat(argv[i], &directory) == 0){
if(directory.st_mode & S_IFDIR){
dirCount++;
}
}
}
//print values, exit
}
}
あなたがこれまでに持っているものを示してください – JackVanier
'man 2 stat'では何がわかりませんか? – Evert
'man 2 stat'を読んだことがありますか? – dlmeetei