这篇文章主要介绍了C语言利用system调用系统命令行详情,system就是调用系统命令行,输入为字符串,然后把这个字符串输出给命令行,让命令行执行。下文的具体内容,需要的小伙伴可以参考一下
system
,顾名思义,就是调用系统命令行,输入为字符串,然后把这个字符串输出给命令行,让命令行执行。
为了测试其特性,可以做一个小程序:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | //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; } |
然后开始
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | >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
可以获取名字对应的环境变量
1 | char * getenv ( const char *name) |
例如:
1 2 3 4 5 6 7 8 | #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
….
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...