c语言调用dos命令函数 dos命令语法

如何在C语言 C++里面调用 DOS命令

首先,你得添加头文件:

相城网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。创新互联于2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。

#include

dos.h

然后,调用Dos命令用函数system()。

例如:

system("Pause");

//使程序暂停执行的Dos命令。

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

在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内容如下:

#include

main

{

FILE

*

fp;

charbuffer[80];

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

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

printf(“%s”,buffer);

pclose(fp);

}

在C语言中如何使用dos命令

用system()函数

原型:int

system(char

*cmd)

包含在dos.h下(VC

包含在stdlib.h)

定时关机

程序:

#includestdio.h

#includedos.h

#includestring.h

void

main()

{

char

s[30]="shutdown

-s

-t

";

char

*p;

printf("please

input

how

many

seconds

you

want

to

wait

:

");

scanf("%s",p);

strcat(s,p);

system(s);

}

需要注意的是,上面的程序需在Turbo

C小编译,在VC环境下会提示error

C2065:

'system'

:

undeclared

identifier

可以改为:

#includestdio.h

#includestdlib.h

#includestring.h

int

main()

{

char

p[100]="shutdown

-s

-t

";

char

s[20];//注意这里不能写成*s否则即使调试成功,程序写无法正常运行!

int

str;

int

ch;

printf("请输入

等待时间

(秒):");

scanf("%s",s);

strcat(p,s);

system(p);

return

0;

}

一旦编译成功后就可以在工程文件夹下找到生成的*.exe

文件,以后就不用那么麻烦的键入命令啦,呵呵……

如果想取消关机,可另外在写一个程序:

#includestdio.h

#includedos.h

#includestring.h

void

main()

{

char

s[30]="shutdown

-a

";

system(s);

}

二合一,那叫一个方便啊,哦也!!!


当前名称:c语言调用dos命令函数 dos命令语法
标题链接:http://pwwzsj.com/article/hishdi.html