C: Run a System Command and Get Output? 在C程序中调用工具,并且得到结果。

现在在做一个WIFI API相关的库,这样就可以让其他的人管理WIFI.

在调用API的时候要回复SHELL打印的信息,比如说搜索热点,而且不在SHELL中打印出来。然后把信息返回给调用API的程序。

#include <stdio.h>
#include <stdlib.h>

int main( int argc, char *argv[] )
{

  FILE *fp;
  char path[1035];

  /* Open the command for reading. */
  fp = popen("/bin/ls /etc/", "r");
  if (fp == NULL) {
    printf("Failed to run command\n" );
    exit(1);
  }

  /* Read the output a line at a time - output it. */
  while (fgets(path, sizeof(path), fp) != NULL) {
    printf("%s", path);
  }

  /* close */
  pclose(fp);

  return 0;
}

You want the "popen" function. Here‘s an example of running the command "ls /etc" and outputing to the console.


时间: 2025-01-23 11:49:33

C: Run a System Command and Get Output? 在C程序中调用工具,并且得到结果。的相关文章

inux C程序中获取shell脚本输出(如获取system命令输出)

转载自 http://blog.csdn.net/hjxhjh/article/details/7909518 1. 前言 Unix 界有一句名言:"一行shell脚本胜过万行C程序",虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作.比如实现一个 ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令.但是,system函数仅返回命令是否执行

SUID或SGID程序中能不能用system函数

system()函数的声明和说明如下: 注意它的描述那里,system()执行一个由command参数定义的命令,通过调用/bin/sh -c命令来实现这个功能.也就是说它的逻辑是这样的! 进程调用system函数,system函数调用fork创建一个子进程,然后再调用exec函数来把这个子进程的正文段替换成/bin/sh命令的正文段.然后再由sh来执行exec将程序的正文段替换成command参数所代表的命令的正文段,例如,我的一个程序a.out来调用system函数来执行sleep 20命令

【DB2】If ‘db2‘ is not a typo you can run the following command to lookup the package that contains the binary: command-not-found db2 bash: db2: command not found

数据库安装以后,db2报错如下: If 'db2' is not a typo you can run the following command to lookup the package that contains the binary:    command-not-found db2bash: db2: command not found 问题处理: ①首先编辑/etc/profile vim /etc/profile ②然后在该文件最后一行添加 PATH=$PATH:/opt/ibm/

Atitit. 解决80端口 System 占用pid 4,,找到拉个程序或者服务占用http 80服务

Atitit. 解决80端口  System 占用pid 4,,找到拉个程序或者服务占用http服务 这个是http.sys系统服务占用了... net stop http ,三,没法儿终止 1. 寻找拉个程序占用李这个端口http服务 "netsh http show servicestate"这条命令的输出结果,我就能找出是哪个应用程序在使用Http.sys. :\Users\attilax>netsh http show servicestate 作者:: 老哇的爪子 At

未找到具有固定名称&ldquo;System.Data.SQLite&rdquo;的 ADO.NET 提供程序的实体框架提供程序

用户代码未处理 System.InvalidOperationException   HResult=-2146233079   Message=未找到具有固定名称"System.Data.SQLite"的 ADO.NET 提供程序的实体框架提供程序.请确保在应用程序配置文件的"entityFramework"节中注册了该提供程序.有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=260882.   Source=E

“System.Exception”类型的异常在 NHibernate.dll 中发生,但未在用户代码中进行处理

“System.Exception”类型的异常在 NHibernate.dll 中发生,但未在用户代码中进行处理 其他信息: OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用. 如有适用于此异常的处理程序,该程序便可安全地继续运行.

“System.NullReferenceException”类型的异常在 App_Web_j2s3gau3.dll 中发生,但未在用户代码中进行处理的Bug解决方案

这个异常报错的原因也许在不同的项目中,也有很多种原因导致出错.在这里我针对我的项目,看了报错的提示,找了大半天.终于找到了..唉..虽然简单,但还是写写. 我的项目里实现了URL的重写,URL重写类里面做了一个“网站访问日志”的功能,该功能只不过是记录来网站的URL,并保存数据库中.在这里我用到了,缓存(HttpRuntime.Cache),在整个应用程序中都可以访问该值.之前的是 Microsoft .NET Framework 3.5,现在我 升到Microsoft .NET Framewo

.Net中使用com组件后发生System.ArithmeticException异常的解决办法(Message=算术运算中发生溢出或下溢。)

最近在开发一个.Net程序,其中涉及到对com组件的调用,或者第三方DLL调用, 在调用完以后如果使用一些小的测试程序继续运行,一切正常,但是在使用带有GUI的form程序,或者WPF程序中,继续执行时,总是出现以下异常Exception: System.ArithmeticExceptionMessage: 算术运算中发生溢出或下溢. "设置属性"System.Windows.FrameworkElement.Height"时引发了异常.",行号为"6&

Java应用程序中System.out.println输出中文乱码

Java应用程序中System.out.println输出中文乱码 2013-12-10 21:27:08cnblogs.com-bluepoint2009-点击数:3631 其实,解决办法比较简单,即:编译时指定编码为UTF-8,如: 1 javac -encoding utf-8 HelloJava.java 这样,再运行时就不会出现乱码. 一.中文问题的来源 计算机最初的操作系统支持的编码是单字节的字符编码,于是,在计算机中一切处理程序最初都是以单字节编码的英文为准进行处理.随着计算机的发