diff --git a/4.file_read_count/copycount b/4.file_read_count/copycount new file mode 100755 index 0000000..0aa79f3 Binary files /dev/null and b/4.file_read_count/copycount differ diff --git a/4.file_read_count/copycount.c b/4.file_read_count/copycount.c new file mode 100644 index 0000000..0d4b90b --- /dev/null +++ b/4.file_read_count/copycount.c @@ -0,0 +1,87 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +int main (int index, char** in_data){ + + + int fd,fd2,ridden,wrote, tot,vocali,cifre,righe; + tot = vocali = cifre = righe = 0; + char buf; + fd = open ("sample",O_RDONLY); + fd2 = open ("sample_copied", O_CREAT | O_WRONLY,00700); + if (fd < 0){ + fprintf(stderr,"Error reading file %d\n",errno); + exit(-1); + } + if (fd2 < 0){ + fprintf(stderr,"Error creating file %d\n",errno); + exit(-1); + } + + for (ridden = read (fd,&buf,1) ; ridden == 1 ;ridden = read (fd,&buf,1)){ + + + if (isdigit(buf) != 0){ + cifre++; tot++; + wrote = write (fd2,&buf,1); + if (wrote != 1){ + fprintf(stderr,"Error writing to file %d\n",errno); + exit(-1); + } + continue; + } + + if (buf == 'a' || buf == 'e' || buf == 'i' || buf == 'o' || buf == 'u'){ + vocali++;tot++; + wrote = write (fd2,&buf,1); + if (wrote != 1){ + fprintf(stderr,"Error writing to file %d\n",errno); + exit(-1); + } + continue; + } + + if (buf == '\n'){ + righe++;tot++; + wrote = write (fd2,&buf,1); + if (wrote != 1){ + fprintf(stderr,"Error writing to file %d\n",errno); + exit(-1); + } + continue; + } + + + tot++; + wrote = write (fd2,&buf,1); + if (wrote != 1){ + fprintf(stderr,"Error writing to file %d\n",errno); + exit(-1); + } + + + } + + if (ridden < 0){ + fprintf(stderr,"Error reading file %d\n",errno); + exit(-1); + } + + fprintf (stdout, "Numero vocali %d\n", vocali); + fprintf (stdout, "Numero righe %d\n", righe); + fprintf (stdout, "Numero cifre %d\n", cifre); + fprintf (stdout, "Numero caratteri %d\n", tot); + + close(fd);close(fd2); + + + return 0; +} \ No newline at end of file diff --git a/4.file_read_count/readme.txt b/4.file_read_count/readme.txt new file mode 100644 index 0000000..b4ccd4e --- /dev/null +++ b/4.file_read_count/readme.txt @@ -0,0 +1 @@ +il programma legge il file sample e lo ricopia in sample_copied contango righe,vocali,numeri e caratteri \ No newline at end of file diff --git a/4.file_read_count/sample b/4.file_read_count/sample new file mode 100644 index 0000000..631333f --- /dev/null +++ b/4.file_read_count/sample @@ -0,0 +1,6 @@ +aafdsfdsfdfdfdfdf +4343 +fdsd342 +fdfdsfFJSNJNDJS +dfdsfa + diff --git a/4.file_read_count/sample_copied b/4.file_read_count/sample_copied new file mode 100755 index 0000000..631333f --- /dev/null +++ b/4.file_read_count/sample_copied @@ -0,0 +1,6 @@ +aafdsfdsfdfdfdfdf +4343 +fdsd342 +fdfdsfFJSNJNDJS +dfdsfa + diff --git a/4.file_read_count/sample~ b/4.file_read_count/sample~ new file mode 100644 index 0000000..0cb7e0b --- /dev/null +++ b/4.file_read_count/sample~ @@ -0,0 +1,6 @@ +fdsfdsfdfdfdfdf +4343 +fdsd342 +fdfdsfFJSNJNDJS +dfdsf +