util.c
changeset 30 2e0fb4130bfb
parent 16 359b6e563b95
child 32 082c75b937b5
equal deleted inserted replaced
29:8ad86d0a6a53 30:2e0fb4130bfb
   124 		execvp(argv[0], argv);
   124 		execvp(argv[0], argv);
   125 		fprintf(stderr, "gridwm: execvp %s", argv[0]);
   125 		fprintf(stderr, "gridwm: execvp %s", argv[0]);
   126 		perror(" failed");
   126 		perror(" failed");
   127 	}
   127 	}
   128 	else {
   128 	else {
   129 		n = 0;
   129 		l = n = 0;
   130 		close(pfd[1]);
   130 		close(pfd[1]);
   131 		while(l > n) {
   131 		while(n < len) {
   132 			if((l = read(pfd[0], buf + n, len - n)) < 1)
   132 			if((l = read(pfd[0], buf + n, len - n)) < 1)
   133 				break;
   133 				break;
   134 			n += l;
   134 			n += l;
   135 		}
   135 		}
       
   136 		while(l > n);
   136 		close(pfd[0]);
   137 		close(pfd[0]);
   137 		buf[n < len ? n : len - 1] = 0;
   138 		buf[n < len ? n : len - 1] = 0;
   138 	}
   139 	}
   139 	wait(0);
   140 	wait(0);
   140 }
   141 }