码迷,mamicode.com
首页 > 其他好文 > 详细

system(“pause”)和getchar()

时间:2014-05-09 17:56:23      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:c   get   a   linux   os   window   

大家都知道system(“PAUSE”)可以让C程序在运行结束之前暂停运行。用system(“PAUSE”)可以解决运行程序一闪而过,看不到输出结果的问题。有程序员会用system(“PAUSE”)只是为了能够让程序暂停,以便看到运行的结果。这就好比用大炮打蚊子杀鸡用牛刀。那么system(“PAUSE”)语句究竟怎么运行呢?

下面是关于system(“PAUSE”)的一些观点:

 1.平台相关性。system(“PAUSE”)只限于有PAUSE系统命令的操作系统。像DOS系统或者Windows系统。但是在Linux或其他系统却不能,因此不具有可移植性。

 2.资源消耗大。虽然可以起到暂停程序的效果,但是在这过程中,程序却占用了大量资源。 那么system()的运行过程是怎么样呢?

(1)暂停程序

(2)调用操作系统内核

(3)打开一个系统子程序

(4)查找系统命令PAUSE

(5)分配内存给PAUSE命令,并执行

(6)等待键盘输入

(7)释放PAUSE内存

(8)退出操作系统

(9)返回程序

3.为了执行system(“PAUSE”),需要加入stdlib.h,造成程序冗余。

解决方法:可以用getchar()或者 std::cin.get代替system(“PAUSE”) 。

system(“pause”)和getchar(),布布扣,bubuko.com

system(“pause”)和getchar()

标签:c   get   a   linux   os   window   

原文地址:http://www.cnblogs.com/graceting/p/3708436.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!