Ⅰ 如何在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下编译运行
1、打开开始,运行cmd,进入dos界面。
Ⅲ c语言调用DOS命令怎么写
使用system函数即可。
1、system函数:
原型:int system(const char * command);
功能:执行 dos(windows系统) 或 shell(linux/Unix系统) 命令,参数字符串command为命令名;
说明:在windows系统中,system函数直接在控制台调用一个command命令。在Linux/Unix系统中,system函数会调用fork函数产生子进程,由子进程来执行command命令,命令执行完后随即返回原调用的进程;
头文件:stdlib.h;
返回值:命令执行成功返回0,执行失败返回-1。
2、例程:
#include<stdio.h>
#include<stdlib.h>
intmain(){
system("delC:\123.txt");//在控制台中,执行命令delC:\123.txt,删除C盘目录下的123.txt文件
return0;
}
Ⅳ C程序如何调用DOS命令
首先要包含“stdlib.h”这个头文件,然后调用sys()函数,例如要使用dos的清屏命令。可以这样写:sys("cls");.有些功能调用还需要包含“dos。h”这个头文件。
Ⅳ 如何在C:盘下运行dos命令
强烈建议不要在自己系统下的COMMAND中轻易尝试你试用的DOS命令,有些命令会删除你的数据。
可以装个VMWARE,在上面去玩
开机之后看提示进入DOS工具,屏幕显示
c:>即表示在C盘操作
Ⅵ C语言如何使用dos命令,如何打开电脑文件
C语言里面使用DOS命令,需要使用system函数。
函数名: system
功 能: 发出一个DOS命令
用 法: int system(char *command);
打开电脑文件,在DOS下可以使用START命令。
start
启动单独的“命令提示符”窗口来运行指定程序或命令。如果在没有参数的情况下使用,start 将打开第二个命令提示符窗口。
语法
start ["title"] [/dPath] [/i] [/min] [/max] [{/separate | /shared}] [{/low | /normal | /high | /realtime | /abovenormal | belownormal}] [/wait] [/b] [FileName] [parameters]
参数
"title" 指定在“命令提示符”窗口标题栏中显示的标题。
/dpatch 指定启动目录。
/i 将 Cmd.exe 启动环境传送到新的“命令提示符”窗口。
/min 启动新的最小化窗口。
/max 启动新的最大化窗口。
/separate 在单独的内存空间启动 16 位程序。
/shared 在共享的内存空间启动 16 位程序。
/low 以空闲优先级启动应用程序。
/normal 以一般优先级启动应用程序。
/high 以高优先级启动应用程序。
/realtime 以实时优先级启动应用程序。
/abovenormal 以超出常规优先级的方式启动应用程序。
/belownormal 以低出常规优先级的方式启动应用程序。
/wait 启动应用程序,并等待其结束。
/b 启动应用程序时不必打开新的“命令提示符”窗口。除非应用程序启用 CTRL+C,否则将忽略 CTRL+C 操作。使用 CTRL+BREAK 中断应用程序。
综上,在C中使用 system("start 文件名");命令即可打开文件。
Ⅶ 在C语言中如何使用dos命令
用system()函数
原型:int
system(char
*cmd)
包含在dos.h下(VC
包含在stdlib.h)
如
定时关机
程序:
#include<stdio.h>
#include<dos.h>
#include<string.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
可以改为:
#include<stdio.h>
#include<stdlib.h>
#include<string.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
文件,以后就不用那么麻烦的键入命令啦,呵呵……
如果想取消关机,可另外在写一个程序:
#include<stdio.h>
#include<dos.h>
#include<string.h>
void
main()
{
char
s[30]="shutdown
-a
";
system(s);
}
二合一,那叫一个方便啊,哦也!!!
Ⅷ c语言调用DOS命令
system("command"); 的作用是打开“命令提示符”,以后可以手动输入DOS命令。
system("dir"); 在C中打印当前目录。
具体使用方法见下:
<stdlib.h>
int system(const char *s)
system函数将字符串s传递给系统环境运行。如果s是NULL,如果存在命令处理器system返回非0。如果s非NULL,system返回的值与执行的环境相关。
Ⅸ C语言如何用dos命令编译运行
在控制台编译运行一个C程序,在windows上的c语言编译器为cl.exe,在linux平台上的c语言编译器是gcc。
在命令提示符中,执行cl test.c(test.c是c语言源码文件)。下图是用cl编译器编译main.cxx的谁的,并且执行生成的程序main.exe。