Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.72 KB | None | 0 0
  1. char *copier(int tube){
  2.     int tmp;
  3.     int TMAX=1024;
  4.     unsigned char buffer[TBUFFER];
  5.     char *dest;
  6.     if((dest = malloc(TMAX))== NULL){
  7.         raler("malloc");
  8.     }
  9.     char *newAlloc=NULL;
  10.     int tCurrent;
  11.     while((tmp= read(tube, buffer, TBUFFER))>0){
  12.         tCurrent=(tmp + strlen(dest));
  13.         if(TMAX < tCurrent){
  14.             TMAX *= 2;
  15.             newAlloc=realloc(dest,TMAX);
  16.             if (newAlloc != NULL){
  17.                 dest = newAlloc;
  18.             } else {
  19.                 raler("realloc");
  20.             }
  21.             snprintf(dest,TMAX,"%s",buffer);
  22.         }
  23.     }
  24.     if((tmp = read(tube, buffer,TBUFFER))==-1){
  25.         raler("read");
  26.     }
  27.     free(newAlloc);
  28.     return dest;
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement