Hello, i need to create a C program filestat that takes as a command line parame
ID: 3663463 • Letter: H
Question
Hello, i need to create a C program filestat that takes as a command line parameter the name of a directory, and for every file or directory in the passed directory print out the contents of the stat structure associated in the following sample format. I have started this program and have all the proper #inlcudes and first command line. Please help me continue the development of this program.
My program so far:
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <time.h>
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
extern int errno;
void err_quit(char *);
int main(int argc, char *argc[]) {
return 0;
}
Explanation / Answer
Here is the program as per your expectations.
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <time.h>
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <dirent.h>
#include <stdio.h>
extern int errno;
void err_quit(char *);
int main(int argc, char *argv[]) // I have changed it to argv[]
{
char ch, file_name[25]; // to name the file and to read a character from file we declare.
FILE *fp; // file pointer
DIR *d;
struct dirent *dir;
if(argc == 2)
d = opendir(argv[1]); // we are getting the directory name
if (d)
{
while ((dir = readdir(d)) != NULL) // reading the file names in the directory
{
printf("%s ", dir->d_name); // printing the file name.
file_name = dir->d_name;
fp = fopen(file_name,"r"); // opening a file in read mode.
if( fp == NULL )
{
printf("Error while opening the file. ");
}
else
{
printf("The contents of %s file are : ", file_name);
while( ( ch = fgetc(fp) ) != EOF )
printf("%c",ch);
fclose(fp); // closing the file
}
}
closedir(d); // closing the directory.
}
return(0);
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.