简单来说就是暂停的意思,一般在LINUX编程时会用到,等待接收信号,才会重新运行 。

在进行C/C++编程的时候,在运行程序查看输出效果时,会出现窗口闪一下就关闭的情况。

在C语言中一般通过添加getchar();

在C++中一般在main函数中的return之前添加system("pause");这样就可以看清楚输出的结果,pause会输出"press any key to continue. . ."。

system函数原型为 int system(char *command),在windows平台就是执行DOS命令,在linux平台就是执行shell命令

Linux下system () 函数详解简介

(执行shell 命令)

相关函数

fork,execve,waitpid,popen

表头文件

#include

定义函数

int system(const char * string);

函数说明

system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。

返回值

如果fork()失败 返回-1:出现错误

如果exec()失败,表示不能执行Shell,返回值相当于Shell执行了exit(127)

如果执行成功则返回子Shell的终止状态

如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),则返回非零值>。如果system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为 system()调用/bin/sh失败所返回的127,因此最好能再检查errno 来确认执行成功。

附加说明

在编写具有SUID/SGID权限的程序时请勿使用system(),system()会继承环境变量,通过环境变量可能会造成系统安全的问题。范例

#i nclude

main()

{

system(“ls -al /etc/passwd /etc/shadow”);

}

执行结果:

-rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd

-r--------- 1 root root 572 Sep 2 15 :34 /etc/shado

例2:

char tmp[];

sprintf(tmp,"/bin/mount -t vfat %s /mnt/usb",dev);

system(tmp);

其中dev是/dev/sda1.System与exec的区别

1、system()和exec()都可以执行进程外的命令,system是在原进程上开辟了一个新的进程,但是exec是用新进程(命令)覆盖了原有的进程

2、system()和exec()都有能产生返回值,system的返回值并不影响原有进程,但是exec的返回值影响了原进程

c语言中pause的作用,c++中的system(pause)的作用和含义解析相关推荐

  1. C语言中:在头文件中使用static定义变量意味着什么?

    C语言中:在头文件中使用static定义变量意味着什么? 看到有一位同学在头文件中这么写: static const wchar_t* g_str1 = - static const wchar_t* ...

  2. C语言中,求三个数中最大数

    C语言中,求三个数中最大数 #include<stdio.h>//以下是进行正整数的最大之间的比较,其他类型只需进行相应的格式修改 int main(){int a,b,c,max;//定 ...

  3. java可以使用c语言中的输入,c语言中的scanf在java中应该怎么表达,Scanner类。

    1 java是面向对象的语言 它没有像C语言中的scanf()函数,但是它的类库中有含有scanf功能的函数 2 java.util包下有Scanner类 Scanner类的功能与scanf类似 3 ...

  4. 在c语言中realloc_C和C ++编程中的realloc()

    在c语言中realloc There could be many situations while programming in C or C++ language when you need to ...

  5. c语言中.和-区别,c语言中-和.的区别

    对于c语言中"->"和"."的区别总结如下: 1.A.B则A为对象或者结构体: 2.A->B则A为指针,->是成员提取,A->B是提取A ...

  6. c++中的system(pause)的作用

    作用: system就是调用从程序中调用系统命令(和shell命令). system("pause")就是从程序里调用"pause"命令: 而"pau ...

  7. c语言指数部分尾数部分,C语言中 float double在内存中的存储

    C语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit, double数据占用 64bit,我们在声明一个变量float f= 2.2 ...

  8. 字符'0'到'9'在c语言中,/0在c语言中是什么意思?

    01 "\0"在c语言中代表"字符串结束符"."\0"的ASCII码为"0",也就是空字符:字符串总是以"\0 ...

  9. c语言中的scanf在java中应该怎么表达,Scanner类。

    1 java是面向对象的语言 它没有像C语言中的scanf()函数,但是它的类库中有含有scanf功能的函数 2 java.util包下有Scanner类 Scanner类的功能与scanf类似 3 ...

最新文章

  1. 从传统到深度学习:浅谈点云分割中的图结构
  2. FoundationDB Record Layer 宣布开源,提供关系数据库功能
  3. 使用Python开发的POC多线程批量执行小框架
  4. 使用goJenkins create job 返回500
  5. java列表展开折叠,jQuery Datatables rowGroup折叠/展开
  6. STM32工作笔记0032---编写跑马灯实验---寄存器版本
  7. 设计模式(十八):责任链模式
  8. java接口中有效的方法声明_在Java接口中,下列选顶中有效的方法声明是
  9. 光纤传输技术——光器件(三)
  10. DT|一文看完企业绩效管理系统产品(EPM)的前世今生
  11. Word文档转换:如何使用Aspose.words在Java中将Word和图像转换为PDF
  12. jpg格式电脑怎么弄_jpg图片格式如何操作
  13. ThinkPad E430 选择U盘启动后又跳回选择画面
  14. 拾叶集 文/江湖一剑客
  15. 裸辞后破釜沉舟三个月,拿到SSP!
  16. [集训队作业2018]喂鸽子
  17. AliOS Things 编译体系
  18. DIY电脑检测软件大集中
  19. EPICS Scaler记录和相关软件
  20. 写给产品经理的第4封信:关于产品经理的十万个为什么?你为什么要做产品经理?

热门文章

  1. 【零基础学JS -4 】Javascript的变量-var let const
  2. 设计模式- 策略模式(Strategy)
  3. 图片转换成ico应用程序(pyqt5/exe)
  4. python基础知识二
  5. python可以在多种平台运行、体现了_2020年智慧树数据结构与算法第二单元章节测试答案...
  6. Cadence Allegro与PADS联合作图,导出Cadence Allegro的PCB和原理图到PADS进行设计
  7. vue组件使用 - photo-sphere-viewer加载360°全景图片
  8. Ant Counting多重集组合数
  9. 【论文总结】对中国安卓应用市场大规模比较研究
  10. 【嵌入式模块】步进电机使用总结