C程序调用shell脚本共同拥有三种法子 :()、popen()、exec系列数call_exec1.c ,
linuxc调用系统命令 linux调用cmd
linuxc调用系统命令 linux调用cmd
() 不用你自己去产生进程。它已经封装了,直接增加自己的命令
exec 须要你自己 fork 进程,然后exec 自己的命令
popen() 也能够实现运行你的命令,比 开销小
方法一、()的使用。我直接上代码吧
int (const char command);
我在/home/book/shell新建一个test.sh文件例如以下:
#!bin/bash
echo $HOME
echo "the is test!"
test.c文件例如以下:
#include
int main()
{("bash /home/book/shell/test.sh"); / chmod +x test.sh ,路径前面要加上bash /
return 0;
}
运行例如以下命令来编译:
gcc test.c -o test
测试命令:
./test
结果例如以下:
/root
the is test!
Linux中c++如何调用终端命令
最简单的:
#include
int main() {
return ("chromium-browser ");
}
如何在linux下的C里调用系统命令,等同输入命令
(执行shell 命令)
相关函数 fork,execve,waitpid,popen
表头文件 #include
可以使用函数调用。
("shell_command");
可以实现在shell中调用shell_command的作用。
比如设置网卡IP为192.168.1.100,可以写作
("ifconfig
0
192.168.1.100");
标准的c函数库是所有的编译都要具有的函数库,(实际上还是略有不同),但是这些基本上实现方法略有不同,但是结果和标准是一样的。但是linux的系统调用,调用是linux的系统库,比如说unistd.h下的fork这个是Linux下特有,你在vs上,就没有这个库,也没有这个函数。同样在vs上写c,你可以引入头文件比如windows.h,显然这个库是Linux不具有的。简单说系统调用库根据具体的作系统环境不同而不同,而c标准库,是所有支持c语言编译器都有的。
可以使用函数调用。
("shell_command");
可以实现在shell中调用shell_command的作用。
比如设置网卡IP为192.168.1.100,可以写作
("ifconfig 0 192.168.1.100");
linux下怎样用c语言调用shell命令
//使用popen()函数和pclose()函数,具体使用示例如下:
FILE fp;
char cmd[]="ls -l"; //以ls -l命令为例
char buf[1024];
if((fp=popen(cmd,"r")) == NULL)
{printf("popen() failed:%s",strerror(errno));
return -1;
}fread(buf,1,sizeof(buf),fp); //将fp数据流读取到buf中
printf("%s
",buf); //在屏幕中显示ls -l的执行结果
pclose(fp); //关闭文件流fp这里我只是写了最核心的代码,希望对你有所帮助。
用调用。
比如
("ifconfig 0 192.168.1.20");
设置IP。
如果需要获得shell打印, 可以用popen .
具体步骤自行百度。
可以通过函数,调用shell命令。
1 函数原型:
int (const char cmd);
2 功能:
调用cmd内容的系统命令,即shell命令。
3 头文件:
stdlib.h
4 举例:
("ls");
打印当前工作目录下的文件。
不要shell执行结果用, 要执行结果用popen
("mkdir test");
("sh bash.sh");
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 836084111@qq.com 举报,一经查实,本站将立刻删除。