Progm 2
Progm 2
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/stat.h>
int main(int argc, char *argv[])
{
struct stat sb;
if(argc !=2){
fprintf(stderr,"Usage: %s filename \n",argv[0]);
exit(EXIT_FAILURE);
}
printf("File : %s\n",argv[1]);
if(stat(argv[1],&sb)==-1){
perror("stat");
exit(EXIT_FAILURE);
}
printf("File Type: ");
switch(sb.st_mode & 0x0f000){
case S_IFBLK : printf("Block Device\n");
case S_IFCHR : printf("Character Device\n");
case S_IFDIR : printf("Directory\n");
case S_IFIFO : printf("FIFO/pipe \n");
case S_IFLNK : printf("Symlink\n");
case S_IFREG : printf("Regular File\n");
case S_IFSOCK: printf("Socket \n");
default: printf("Unknown.. \n");
}
}
EXECUTION STEPS
gcc filetype.c
./a.out filepath
break;
break;
break;
break;
break;
break;
break;
OUTPUT
./a.out createfifo.c
File : createfifo.c
File Type: Regular File
./a.out /dev/tty
File : /dev/tty
File Type: Character Device
./a.out /dev/cdrw
File : /dev/cdrw
File Type: Block Device
./a.out Original/
File : Original/
File Type: Directory
./a.out Myfifo
File : Myfifo
File Type: FIFO/pipe