system函数,c语言中system的用法
各位老铁们好,相信很多人对system函数都不是特别的了解,因此呢,今天就来为大家分享下关于system函数以及c语言中system的用法的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
C语言的system函数
system(系统)函数
windows操作系统下system()函数详解(主要是在C语言中的应用)
功能:发出一个DOS命令
用法: int system(char*command);
system函数已经被收录在标准c库中,可以直接调用
程序例:
#include<stdlib.h>
#include<stdio.h>
int main(void)
{
printf("About to spawn and run a DOS command\n");
system("dir");
return 0;
}
又如:system("pause")可以实现冻结屏幕,便于观察程序的执行结果;system("CLS")可以实现清屏操作。而调用color函数可以改变控制台的前景色和背景,具体参数在下面说明。
例如,用 system("color 0A");其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下:
0=黑色 1=蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色 8=灰色 9=淡蓝色 A=淡绿色 B=淡浅绿色 C=淡红色 D=淡紫色 E=淡黄色 F=亮白色
(注意:Microsoft Visual C++6.0支持system)
举例
看了下面实例,相信你会对学到更多system在C程序设计中的应用。
例一:
C语言调用DOS命令实现定时关机:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int print()
{
printf("╪╪╪╪╪╪╧╧╧╧╧╧╧╧╪╪╪╪╪╪\n");
printf("╔═══╧╧C语言关机程序╧╧═══╗\n");
printf("║※1.实现10分钟内的定时关闭计算机║\n");
printf("║※2.立即关闭计算机║\n");
printf("║※3.注销计算机║\n");
printf("║※0.退出系统║\n");
printf("╚═══════════════════╝\n");
return 0;
}
void main()
{
system("title C语言关机程序");//设置cmd窗口标题
system("mode con cols=48 lines=25");//窗口宽度高度
system("color 0B");
system("date/T");
system("TIME/T");
char cmd[20]="shutdown-s-t";
char t[5]="0";
print();
int c;
scanf("%d",&c);
getchar();
switch(c)
{
case 1:printf("您想在多少秒后自动关闭计算机?(0~600)\n");scanf("%s",t);system(strcat(cmd,t));break;
case 2:system("shutdown-p");break;
case 3:system("shutdown-l");break;
case 0:break;
default:printf("Error!\n");
}
system("pause");
exit(0);
}
例二:
用C语言删除文件,例如文件的位置是d:\123.txt
用system()函数执行windows命令。
#include<stdlib.h>
#include<stdio.h>
int main(void)
{
system("del d:\\123.txt");
return 0;
}
Linux system 函数
最近工作中在 Linux下,某些指定的程序需要调用指定的 shell脚本完成指定工作,以前也曾经做过类似的功能,调用 system函数执行指定的脚本,以前并不关心 shell脚本是否执行成功了,现在的功能需要根据 shell脚本执行成功与否,于是查询了下 system函数的说明,有此文以做笔记之用。
功能:调用/bin/sh-c执行指定的脚本 command
常规使用方法:
关于返回值:
答案是都错
man手册
看着挺晕的,但是如果对于 system的执行过程了解的话,就很容易理解了,函数执行分为以下几个阶段。
阶段1:创建子进程等准备工作。如果失败,返回-1
阶段2:调用/bin/sh拉起脚本,如果拉起失败或者shell未正常执行,原因值被写入ret中
阶段3:如果 shell脚本执行成功, shell脚本的返回值写入ret中
从上面可知,不管 shell脚本返回什么值,只要调用了/bin/sh,并且执行过程没有被信号中断,都算正常结束。因为脚本是在子进程中执行的,所以要想获取脚本是否执行成功的方法只能用系统提供的两个宏。
由于我们一般在 shell中会通过返回值判断脚本是否执行成功,成功返回0,成功返回整数。所以判断一个脚本是否执行成功,应该满足三个条件:
注意:当 shell脚本不存在时、没有执行条件等,前两个条件也会成立,此时WEXITSTATUS(ret)为127,所以shell脚本中不能将127作为返回值,shell脚本中的异常返回值最好从1开始递增,成功返回0。
system用起来,看则简单,实则不那么简单,有很多隐藏的坑,需要自己深入理解原理,才能更好地使用,也可以用其他实现方式完成相同的功能。
最后对自己说,多写,多思,多总结
system(pause);有什么作用
从程序中发起系统命令行调用,执行命令:pause。
作用和效果就是dos下的pause。
system("PAUSE");和system("pause");作用和效果一样,因为dos命令是不区分大小写的。
system("PAUSE")是暂停的意思,等待用户信号;不然控制台程序会一闪即过,你来不及看到执行结果。
扩展资料:
system是C函数库stdlib.h、process.h中的一个函数。具体解释如下:
int system(char*command):将MSDOS命令command传递给DOS执行。
而pause是DOS下的一个命令。功能是:暂停批处理的执行,显示一个中文信息:“请按任意键继续...”,或者英文信息:“Press any key to continue...”
简单的说:就是暂停程序的执行,等待任意健继续执行。
OK,关于system函数和c语言中system的用法的内容到此结束了,希望对大家有所帮助。