daily pastebin goal
31%
SHARE
TWEET

r8t - 14 set pomeggio

gincum Sep 14th, 2018 59 Never
Upgrade to PRO!
ENDING IN00days00hours00mins00secs
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <sys/types.h>
  4. #include <sys/stat.h>
  5. #include <fcntl.h>
  6. #include <errno.h>
  7. #include <unistd.h>
  8.  
  9. #define BUF_SIZE 4096
  10.  
  11. //char numeri []={'1','\n', '2','\n'};
  12. char numeri []={'1', '2', '3', '4', '5', '6', '7' ,'8', '9', '0', 'a', 'b', 'c', 'd', 'e', 'f', 'g' ,'h', '\0'};
  13.  
  14. int apriWR(char * nome){
  15. int fille;
  16. char *nomefile = nome;
  17.  
  18.     fille = open (nomefile, O_WRONLY | O_CREAT, 0644);
  19.     //printf("\ndentro OPENING\n\n");
  20.     if (fille == -1){
  21.         fprintf(stderr, "error in file OPENING\n\n");
  22.         exit (EXIT_FAILURE);
  23.         }
  24.  
  25. return fille;
  26. }
  27.  
  28.  
  29. int apriRR(char * nome){
  30. int fille;
  31. char *nomefile = nome;
  32.  
  33.     fille = open (nomefile, O_RDONLY);
  34.     //printf("\ndentro OPENING\n\n");
  35.     if (fille == -1){
  36.         fprintf(stderr, "error File non esistente\n\n");
  37.         exit (EXIT_FAILURE);
  38.         }
  39.  
  40. return fille;
  41. }
  42.  
  43.  
  44. /*in una funzione posso usare su stack la seguente:
  45.  
  46. tipo funzione e nome funzione (unsigned long size){
  47.  
  48. char *buf;
  49. buf = alloca(size);
  50.  
  51.  
  52.  
  53. }
  54.  
  55. no ha bisogno del free perche non sta su heap ma su stack
  56.  
  57. */
  58.  
  59. void  chiudi_file (int fd){
  60.     int c = close (fd);
  61.     if (c == -1){
  62.         (stderr, "error in file CLOSURE");
  63.         exit (EXIT_FAILURE);
  64.     }
  65.  
  66. }
  67.  
  68. void scrivi (int fd){
  69.  
  70.     char *buf;
  71.     buf = numeri;
  72.  
  73.     int lunghezza_buffer = BUF_SIZE;
  74.     ssize_t byte_scritti;
  75.     int i = 0;
  76.  
  77.         while (lunghezza_buffer>0){
  78.  
  79.                 if ((byte_scritti = write (fd, buf, lunghezza_buffer)) == -1){
  80.                     fprintf(stderr, "Error WRITING file\n\n");
  81.                     exit (EXIT_FAILURE);
  82.                     }
  83.  
  84.         buf += byte_scritti;
  85.         lunghezza_buffer -= byte_scritti;
  86.         printf("valore  Buffer  %d\n\n", *buf);
  87.         i++;
  88.         }
  89. }
  90.  
  91.  
  92. unsigned long leggi (int fd){
  93.  
  94.  
  95.     int *numero = {0};
  96.     //int blocksize = sizeof(char);
  97.     int lunghezza_buffer = BUF_SIZE;
  98.     printf("dentro READ");
  99.  
  100.     char *buf;
  101.  
  102.     int i=0;
  103.  
  104.     int byte_letti = 0;
  105.  
  106.    while (lunghezza_buffer>0){
  107.  
  108.         if ((byte_letti = read (fd, buf, lunghezza_buffer)) == -1){
  109.                 printf("Byte Letti  %d", byte_letti);
  110.             fprintf(stderr, "Error READING file\n\n");
  111.             exit (EXIT_FAILURE);
  112.             }
  113.         numero[i] = *buf;
  114.  
  115.         printf("\nDentro il READ\n");
  116.  
  117.         //nume = atoi(numero);
  118.         printf("\n\nValore %d\n", numero[i]);
  119.         buf = buf+byte_letti;
  120.         lunghezza_buffer = lunghezza_buffer-byte_letti;
  121.         i++;
  122.  
  123.  
  124.                 }
  125. return (fd);
  126.  
  127. }
  128.  
  129.  
  130.  
  131.  
  132.  
  133. int main (int argc, char *argv[]){
  134.  
  135. int fd;
  136. char *nomefille = argv[1];
  137.  
  138.  
  139. fd = apriWR(nomefille);
  140. scrivi(fd);
  141. printf("dopo chiamata salvsFD");
  142. chiudi_file (fd);
  143.  
  144.  
  145. fd = apriRR(nomefille);
  146. unsigned long fiDes = leggi(fd);
  147. chiudi_file (fd);
  148.  
  149.  
  150.  
  151.  
  152. //fprintf("eccolo qui %d", fiDes);
  153.  
  154.  
  155. //int leggiFD = leggi(fd);
  156.  
  157. return 0;
  158. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top