Lines Matching refs:fds
225 FILE* CustomPopen(const std::vector<std::string>& command, const char* type, int fds[], in CustomPopen() argument
240 CHECK_TRUE(pipe(fds) == 0, nullptr, "Pipe open failed!"); in CustomPopen()
257 CHECK_TRUE(CustomFdClose(fds[READ]) == 0, nullptr, "CustomFdClose failed!"); in CustomPopen()
258 dup2(fds[WRITE], STDOUT_FILENO); // Redirect stdout to pipe in CustomPopen()
259 CHECK_TRUE(CustomFdClose(fds[WRITE]) == 0, nullptr, "CustomFdClose failed!"); in CustomPopen()
261 CHECK_TRUE(CustomFdClose(fds[WRITE]) == 0, nullptr, "CustomFdClose failed!"); in CustomPopen()
262 dup2(fds[READ], STDIN_FILENO); // Redirect stdin to pipe in CustomPopen()
263 CHECK_TRUE(CustomFdClose(fds[READ]) == 0, nullptr, "CustomFdClose failed!"); in CustomPopen()
277 … CHECK_TRUE(CustomFdClose(fds[WRITE]) == 0, nullptr, "%s %d CustomFdClose failed! errno(%s)\n", in CustomPopen()
281 … CHECK_TRUE(CustomFdClose(fds[READ]) == 0, nullptr, "%s %d CustomFdClose failed! errno(%s)\n", in CustomPopen()
290 return fdopen(fds[READ], "r"); in CustomPopen()
294 return fdopen(fds[WRITE], "w"); in CustomPopen()
297 int CustomPclose(FILE* fp, int fds[], volatile pid_t& childPid, bool needUnblock) in CustomPclose() argument
318 if (fileno(fp) == fds[READ]) { in CustomPclose()
319 fds[READ] = -1; in CustomPclose()
320 CHECK_TRUE(CustomFdClose(fds[WRITE]) == 0, -1, "CustomFdClose failed!"); in CustomPclose()
321 } else if (fileno(fp) == fds[WRITE]) { in CustomPclose()
322 fds[WRITE] = -1; in CustomPclose()
323 CHECK_TRUE(CustomFdClose(fds[READ]) == 0, -1, "CustomFdClose failed!"); in CustomPclose()
336 int CustomPUnblock(int fds[]) in CustomPUnblock() argument
340 CHECK_TRUE(fds[READ] != -1 && fds[WRITE] != -1, -1, "END fds[READ/WRITE]=-1"); in CustomPUnblock()
342 int stat = fcntl(fds[READ], F_GETFL); in CustomPUnblock()
348 write(fds[WRITE], eof, strlen(eof) + 1); in CustomPUnblock()
349 fcntl(fds[READ], F_SETFL, O_NONBLOCK); in CustomPUnblock()