اهداء الي "StrikerX"
كود PHP:
/* program name:filer porpuse:filing files :)"*/
#include<stdio.h>
#include<unistd.h> /* for getopt*/
#define BUF 250 /*buffer size*/
#define KB 1024 /*KB SIZE*/
#define MB (1024*1024) /*MB SIZE*/
void help(char *string);
unsigned int count_chars(char *file_name);
unsigned int count_lines(char *file_name);
unsigned int count_blanks(char *file_name);
unsigned int get_size(char *file_name);
unsigned int lines,chars,blanks,size;
char buffer[BUF];
main(int argc, char **argv)
{
int c;
char *file_name;
unsigned int nchars,nlines,nblanks,nsize;
opterr=0;
if(argc<2)
{
help(argv[0]);
}
while((c=getopt(argc,argv,"c:l:b:s:hv"))!=-1)
{
switch(c)
{
case 'c':
file_name=strdup(optarg);
nchars=count_chars(file_name);
printf("\nThis File Contine %ld Chars\n",nchars);
break;
case 'l':
file_name=strdup(optarg);
nlines=count_lines(file_name);
printf("\nThis File Contine %ld lines\n",nlines);
break;
case 'b':
file_name=strdup(optarg);
nblanks=count_blanks(file_name);
printf("\nThis File Contine %ld blanks\n",nblanks);
break;
case's':
file_name=strdup(optarg);
nsize=get_size(file_name);
printf("\nThis File is %ld bytes witch is %ld kb witch is %ld mb\n",nsize,nsize/KB,nsize/MB);
break;
case 'h':
help(argv[0]);
break;
case 'v':
printf("\nFILER V0.1\n");
break;
default:
fprintf(stderr,"Unkown -%c\n",optopt);
help(argv[0]);
break;
}
}
}
void help(char *string)
{
fprintf(stderr,"USAGE %s <\n-c file_name >counting chars \n-l <file_name>counting lines\n-b <file_name>counting blanks\n-s <file_name> getting size\n-h help -v version",string);
exit(0);
}
unsigned int count_chars(char *file_name)
{
FILE *fp;
if((fp=fopen(file_name,"r"))==NULL)
{
fprintf(stderr,"\nCannot Open File %s\n",file_name);
exit(1);
}
while(fgets(buffer,BUF,fp)!=NULL)
{
chars +=strlen(buffer);
}
fclose(fp);
return chars;
}
unsigned int count_lines(char *file_name)
{
FILE *fp;
if((fp=fopen(file_name,"r"))==NULL)
{
fprintf(stderr,"\nCannot Open File %s\n",file_name);
exit(1);
}
while(fgets(buffer,BUF,fp)!=NULL)
{
lines++;
}
fclose(fp);
return lines;
}
unsigned int count_blanks(char *file_name)
{
FILE *fp;
unsigned int count;
if((fp=fopen(file_name,"r"))==NULL)
{
fprintf(stderr,"\nCannot Open File %s\n",file_name);
exit(1);
}
while(fgets(buffer,BUF,fp)!=NULL)
{
if(buffer[0]=='\n')
{
blanks++;
}
}
fclose(fp);
return blanks;
}
unsigned int get_size(char *file_name)
{
FILE *fp;
if((fp=fopen(file_name,"r"))==NULL)
{
fprintf(stderr,"\nCannot Open File %s\n",file_name);
exit(1);
}
if(fseek(fp,SEEK_SET,SEEK_END)!=0)
{
fprintf(stderr,"Cannot Use Fseek\n");
}
size=ftell(fp);
rewind(fp);
fclose(fp);
return size;
}
تعليق