首页 > 编程知识 正文

strlen函数的用法,c语言中的函数有哪些

时间:2023-05-05 07:43:41 阅读:148467 作者:5000

Linux的popen ()函数可以在程序中执行shell命令并返回命令的执行结果。 有读取和写入两种操作模式。 在读取模式下,可以从程序中读取命令的输出。 其中有一个获取网络接口参数的APP应用程序。 在写入模式下,最常见的是创建新文件或打开其他服务。

头文件:

# include stdio.h http://www.Sina.com /

file*popen(constchar*command,const char *type );函数原型:

调用popen (函数创建管道,fork )生成子流程,通过运行shell和执行命令打开流程。 此管道必须用fclose (pclose,而不是函数)函数封闭。 pclose ) )函数关闭标准I/O流,等待命令执行完成,然后返回到shell退出状态。 如果shell无法执行,pclose () )将返回shell执行exit时的退出状态。

type参数只能是读或写,并且得到的返回值(标准I/O流)也具有取决于type的只读或写入类型。 如果type为“r”,则文件指针连接到command的标准输出; 如果type为' w ',则文件指针连接到command的标准输入。

command参数是一个指向以空值结尾的shell命令字符串的指针。 此命令传递给酷裙子/sh,并使用-c标志。 shell执行这个命令。

popen ) )的返回值是标准I/O流,必须以pclose结尾。 如上所述,这个流是单方面的。 只能用于读写。 写入该流的内容相当于写入该命令的标准输入,命令的标准输出为popen ) )的过程相同。 相比之下,从流中读取数据相当于读取命令的标准输出,而命令的标准输入与调用popen ()的过程相同。

函数说明:

如果fork (或pipe )调用失败或无法分配内存,则返回NULL;否则,返回标准I/O流。 popen ) )没有为内存分配失败设置错误值。 如果调用fork (或pipe )时发生错误,errno将被设置为相应的错误类型。 如果type参数无效,则errno返回EINVAL。

返回值:

# include stdlib.h # include stdio.h # define buf _ size 1024 char buf [ buf _ size ]; intmain(void ) { FILE * p_file=NULL; p_file=popen('ifconfigeth0',' r ' ); if (! p_file(fprintf ) stderr,' Erro to popen ' ); }while(fgets(buf,BUF_SIZE,p_file )!=null(fprintf ) stdout,“%s”,buf ); }pclose(p_file ); 返回0; }

例子:

root @ ye :/home/ye # gcc-walltest _ popen.c-o test _ popen root @ ye :/home/ye #./test _ popen eth0link encap :以太网hwaddr 0033601633603 e :5 f :3133603133604 cinet addr 3360172.20.110.214 bcast 3360172.2110 033603360336021633603 eff : fe5f :314 c/64 scope : link inet6addr 33602001336025033603 c 02:74 a 3360216:3 EFE 64 scope : globalupbroadcastrunningmulticastmtu :1500 metric 33601 rx packets 3360683756 errors 33600 dropped 33602 over runs 336060tttttttttttt 33600 dropped :0 over runs :0电信公司:0 collisions :0 txqueuelen :1000 rx bytes 33601614602888

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。