equal
deleted
inserted
replaced
201 |
201 |
202 bool PosixProcess::ReadOutput() { |
202 bool PosixProcess::ReadOutput() { |
203 bool result = false; |
203 bool result = false; |
204 |
204 |
205 if (FOutputHandle != 0 && IsRunning() == true) { |
205 if (FOutputHandle != 0 && IsRunning() == true) { |
206 char buffer[4096]; |
206 char buffer[4096] = {0}; |
207 |
207 |
208 ssize_t count = read(FOutputHandle, buffer, sizeof(buffer)); |
208 ssize_t count = read(FOutputHandle, buffer, sizeof(buffer)); |
209 |
209 |
210 if (count == -1) { |
210 if (count == -1) { |
211 if (errno == EINTR) { |
211 if (errno == EINTR) { |
215 exit(1); |
215 exit(1); |
216 } |
216 } |
217 } else if (count == 0) { |
217 } else if (count == 0) { |
218 // break; |
218 // break; |
219 } else { |
219 } else { |
220 if (buffer[count] == EOF) { |
220 if (buffer[count - 1] == EOF) { |
221 buffer[count] = '\0'; |
221 buffer[count - 1] = '\0'; |
222 } |
222 } |
223 |
223 |
224 std::list<TString> output = Helpers::StringToArray(buffer); |
224 std::list<TString> output = Helpers::StringToArray(buffer); |
225 FOutput.splice(FOutput.end(), output, output.begin(), output.end()); |
225 FOutput.splice(FOutput.end(), output, output.begin(), output.end()); |
226 result = true; |
226 result = true; |