pclose
时间: 2024-02-01 15:14:06 浏览: 68
pclose() 函数用于关闭由 popen() 函数打开的管道,并返回执行命令的返回值。它的原型如下:
```c
#include <stdio.h>
int pclose(FILE *stream);
```
其中,stream 是由 popen() 函数返回的文件指针,表示要关闭的管道。
pclose() 函数会等待被调用进程的结束,并获取进程的退出状态。如果进程正常结束,函数返回进程的退出状态;如果进程异常结束,函数返回一个非零值。如果出现错误,函数返回 -1。
相关问题
popen pclose
popen和pclose是C语言中用于执行shell命令的函数。popen函数可以打开一个进程,并返回一个文件指针,可以通过该文件指针读取该进程的输出信息。而pclose函数则用于关闭由popen打开的进程,并等待该进程结束。但是,pclose是一个阻塞函数,如果想要不阻塞,需要自己实现my_popen函数。在子进程中,需要关闭之前调用popen时打开且当前仍旧打开的所有I/O流。如果应用程序调用waitpid,并且获得popen所创建的子进程的终止状态,则在应用程序调用pclose时,其中将调用waitpid,它发现子进程已不再存在,此时返回-1,errno被设置为ECHILD。
pclose函数返回值
pclose 函数的返回值是一个整数值,表示被执行命令的终止状态。返回值有以下几种可能的情况:
- 如果成功执行并终止子进程,返回子进程的退出状态。
- 如果无法执行命令或子进程终止失败,返回 -1。
- 如果无法等待子进程终止,返回 -1。
需要注意的是,pclose 函数只返回终止状态,而不是命令的输出结果。要获取命令的输出结果,可以使用 popen 函数。