Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- char *copier(int tube){
- int tmp;
- int TMAX=1024;
- unsigned char buffer[TBUFFER];
- char *dest;
- if((dest = malloc(TMAX))== NULL){
- raler("malloc");
- }
- char *newAlloc=NULL;
- int tCurrent;
- while((tmp= read(tube, buffer, TBUFFER))>0){
- tCurrent=(tmp + strlen(dest));
- if(TMAX < tCurrent){
- TMAX *= 2;
- newAlloc=realloc(dest,TMAX);
- if (newAlloc != NULL){
- dest = newAlloc;
- } else {
- raler("realloc");
- }
- snprintf(dest,TMAX,"%s",buffer);
- }
- }
- if((tmp = read(tube, buffer,TBUFFER))==-1){
- raler("read");
- }
- free(newAlloc);
- return dest;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement