成都网站建设设计

将想法与焦点和您一起共享

c语言系统函数执行命令行 c语言运行命令

C语言system()怎样执行多行shell?

可以通过system函数,调用shell命令。

网站设计、做网站中从网站色彩、结构布局、栏目设置、关键词群组等细微处着手,突出企业的产品/服务/品牌,帮助企业锁定精准用户,提高在线咨询和转化,使成都网站营销成为有效果、有回报的无锡营销推广。创新互联专业成都网站建设十载了,客户满意度97.8%,欢迎成都创新互联客户联系。

1 函数原型:

int system(const char *cmd);

2 功能:

调用cmd内容的系统命令,即shell命令。

3 头文件:

stdlib.h

4 举例:

system("ls");

打印当前工作目录下的文件。

C语言命令行参数

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

{

.....

}

argc: 代表启动程序时,命令行参数的个数。C和C++语言规定,可执行程序程序本身的文件名,也算是一个命令行参数,因此,argc的值至少是1.

argv[]:指针数组,其中的每个元素都是一个char* 类型的指针,该指针指向一个字符串,这个字符串里就存放着命令行参数。

例如,argv[0]指向的字符串就是第一个命令行参数,即可执行程序的文件名,argv[1]指向第二个命令行参数,argv[2]指向第三个命令行参数....。

#include stdio.h

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

{

int i;

for ( i = 0;i argc; i++)

{

printf("%s\n",argv[i]);

}

return 0;

}

windows下,将上面的程序编译成sample.exe,然后在控制台窗口敲:

sample para1 para2 s.txt 5 "hello world"

上面有6个参数,双引号为了包含空格作为一个参数。

输出结果:

sample

para1

para2

s.txt

5

hello world

扩展资料:

main函数通常含有参数argc和argv,写法通常如下:

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

int main(int argc,char **argv)

程序:

#includestdio.h

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

{

int i;

for(i=0;iargc;i++)

printf("第 %d 个参数是 %s\n",i+1,argv[i]);

return 0;

}

关于C语言中使用system()函数的问题 & 命令行实行exe和双击执行exe的问题

你学了MFC就会明白, 双击exe文件, 实际上是系统用cmd.exe去运行你双击的exe, 运行完后, cmd.exe会自动退出, 但是你自己手动打开了cmd.exe, 它不会自动关闭, 必须你手动来关闭.

C语言中怎么用system()函数打开一个可执行文件?

system()的输入参数是一个字符串,这个函数的作用就是在命令行下以命令的形式执行这个字符串。

如“C:\a.exe”在命令行下是可以直接运行的,所以直接填到参数里就行了。不过需要注意的是,字符串作为参数的时候“\”要做一下转义,要变成“\\”才行。

如何在C语言中调用cmd命令?

在C语言中调用shell命令的方法实现。

C程序调用shell脚本共有两种方法 :system()、popen(),分别如下:

system()

不用自己去创建进程,系统已经封装了这一步,直接加入自己的命令即可

popen() 也可以实现执行的命令,比system

开销小

以下分别说明:

1)system(shell命令或shell脚本路径);

system()

会调用fork()产生 子历程,由子历程来调用/bin/sh-c string来履行 参数string字符串所代表的命令,此命令履行

完后随即返回原调用的历程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被漠视 。

回值:如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),则返回非零值。 如果

system()调用成功 则最后会返回履行 shell命令后的返回值,但是此返回值也有可能为system()调用/bin/sh失败所返回的127,因

此最好能再反省 errno 来确认履行 成功 。

system命令以其简略

高效的作用得到很很广泛 的利用 ,下面是一个例子

例:在/tmp/testDir/目录下有shell脚本tsh.sh,内容为

#!/bin/sh

wget $1

echo "Done!"

2)popen(char

*command,char *type)

popen()

会调用fork()产生 子历程,然后从子历程中调用/bin/sh -c来履行 参数command的指令。参数type可应用

“r”代表读取,“w”代表写入。遵循此type值,popen()会建立 管道连到子历程的标准 输出设备 或标准 输入设备

,然后返回一个文件指针。随后历程便可利用 此文件指针来读取子历程的输出设备 或是写入到子历程的标准 输入设备 中。此外,所有应用 文

件指针(FILE*)操作的函数也都可以应用 ,除了fclose()以外。

返回值:若成功

则返回文件指针,否则返回NULL,差错 原因存于errno中。注意:在编写具SUID/SGID权限的程序时请尽量避免应用

popen(),popen()会继承环境变量,通过环境变量可能会造成系统安全的问题。

例:C程序popentest.c内容如下:

#includestdio.h

main

{

FILE * fp;

charbuffer[80];

fp=popen(“~/myprogram/test.sh”,”r”);

fgets(buffer,sizeof(buffer),fp);

printf(“%s”,buffer);

pclose(fp);

}


分享名称:c语言系统函数执行命令行 c语言运行命令
文章链接:http://chengdu.cdxwcx.cn/article/hehgic.html