Blogger Information
Blog 18
fans 0
comment 0
visits 16093
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
C语言利用system调用系统命令行详情
Original
797 people have browsed it

system,顾名思义,就是调用系统命令行,输入为字符串,然后把这个字符串输出给命令行,让命令行执行。

为了测试其特性,可以做一个小程序:
`//system.c

include<stdlib.h>

include<stdio.h>

include<string.h>

int main(){
char cmd[100];
while(1){
printf(“input code: “);
gets(cmd);
if(strcmp(cmd,”exit”)==0)
break; //当输入exit时退出
system(cmd);
}
return 0;
}然后开始>gcc system.c

a.exe
input code: asdfasdf
‘asdfasdf’ 不是内部或外部命令,也不是可运行的程序
或批处理文件。
input code: date
当前日期: 2021/12/19 周日
输入新日期: (年月日)
input code: date
当前日期: 2021/12/19 周日
输入新日期: (年月日)
input code: HELP
有关某个命令的详细信息,请键入 HELP 命令名
ASSOC 显示或修改文件扩展名关联。
ATTRIB 显示或更改文件属性。
BREAK 设置或清除扩展式 CTRL+C 检查。
BCDEDIT 设置启动数据库中的属性以控制启动加载。

由于太长,且和命令行中输入HELP的结果是一样的,所以这里就省略了

有关工具的详细信息,请参阅联机帮助中的命令行参考。
input code: exit #退出`
通过system,可以做一个增强版的命令行。

而除了这些终端提供的命令之外,可能还需要一些自定义的语句,这些语句都被存放在环境变量中,getenv可以获取名字对应的环境变量
char *getenv(const char *name)
例如:
`#include <stdio.h>

include <stdlib.h>

int main ()
{
printf(“PATH : %s\n”, getenv(“PATH”));
return 0;
}`
其运行结果为:

E:\Documents\00\1220>a.exe
PATH : C:\Program Files\Microsoft\jdk-11.0.12.7-hotspot\bin;C:\Python310\Scripts\;C:\Python310\;C:\Program Files\Common Files\Oracle\Java\javapath;D:\CS\ImageMagick;(x86)\Common Files\Intel\Shared
….

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post