1. 首页 > 新游快报 >

linuxc调用系统命令 linux调用cmd

C程序调用shell脚本共同拥有三种法子 :()、popen()、exec系列数call_exec1.c ,

linuxc调用系统命令 linux调用cmdlinuxc调用系统命令 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 定义函数 int (const char string); 函数说明 ()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。 返回值 如果()在调用/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),则返回非零值。如果()调用成功则会返回执行shell命令后的返回值,但是此返回值也有可能为()调用/bin/sh失败所返回的127,因此能再检查errno 来确认执行成功。 附加说明 在编写具有SUID/SGID权限的程序时请勿使用(),()会继承环境变量,通过环境变量可能会造成系统安全的问题。 范例 #include main() { (“ls -al /etc/passwd /etc/shadow”); } 执行 -rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd -r--------- 1 root root 572 Sep 2 15 :34 /etc/shadow

可以使用函数调用。

("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 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息