c语言暂替控制台返回,查看结果

来源:互联网 发布:ubuntu安装yum源 编辑:程序博客网 时间:2024/06/03 03:16

很多C语言初学者的调试时,往往没看到结果程序就退出了,据我所知的方法主要有以下几种

方法一:
#include
int main()
{
system("pause");//利用了DOS命令
return 0;
}

/*关于system参考http://baike.baidu.com/view/627587.htm */

system

开放分类:电脑进程、c语言库函数

进程文件:System
进程名:System
描述:System - 系统 体制 计划
系统里确实有system这个进程,但注意,它并不是system.exe,可能是木马伪装而成的,还是先查查木马吧
进程文件:system.exe
进程名称:system.exe
描述:
system.exe是netcontroller木马病毒生成的文件,出现在c:\windows目录下,建议将其删除。但要系统的system进程区分开来。system进程是没有.exe的,其信息可见:http://www.pctutu.com/tasklist/system.html
出品者:未知
属于:未知
系统进程:否
后台进程:否
使用网络:是
硬件相关:是
常见错误:未知
内存使用:未知
安全等级:4
间谍软件:否
广告软件:否
病毒:否
木马:否
如果你用的是xp系统,这个进程在“任务管理器”中就结束不掉,结束掉的进程说明这个进程不能对系统造成直接危害,不过,用其它软件可能能强制结束,但这样会造成蓝屏等现象。
如果你是vista系统,结束掉之后,马上就会蓝屏。这个是系统的进程,是内存运行的!如果关掉会有可能出现两种情况!
一:蓝屏。
二:出现那个说你是非法程序的对话框。
总的来说就是系统有可能崩溃!

system:[ 'sistəm ]
n.
1. 体系;系统[C]
2. 制度,体制[C]
3. 现存社会体制[the S]
4. 秩序,规律[U]
5. 方式,方法[C]
6. 身体,全身[the S]
7. 宇宙,世界[the S]

windows操作系统下system () 函数详解
函数名: system
功 能: 发出一个DOS命令
用 法: int system(char *command);
system函数已经被收录在标准c库中,可以直接调用
程序例:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
printf("About to spawn command.com and run a DOS command\n");
system("dir");
return 0;
}

linux操作系统下system () 函数详解
(执行shell 命令)
相关函数
fork,execve,waitpid,popen
表头文件
#i nclude<stdlib.h>
定义函数
int system(const char * string);
函数说明
system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命>令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。
返回值
=-1:出现错误
=0:调用成功但是没有出现子进程
>0:成功退出的子进程的id
如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),则返回非零值>。如果system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为 system()调用/bin/sh失败所返回的127,因此最好能再检查errno 来确认执行成功。
附加说明
在编写具有SUID/SGID权限的程序时请勿使用system(),system()会继承环境变量,通过环境变量可能会造成系统安全的问题。
范例
#i nclude<stdlib.h>
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.

方法二:
#include
int main()
{
getchar();//须按回车键结束,不是任意键
return 0;
}

方法三:
#include
int main()
{
getch();//按任意键退出
return 0;
}

/*

getch

开放分类:计算机语言、计算机技术、编程、程序、函数

函数名: getch
功 能: 从控制台无回显地取一个字符
用 法: int getch(void);
程序例:

#include <stdio.h>
#include <conio.h>

int main(void)
{
char ch;

printf("Input a character:");
ch = getch();
printf("\nYou input a '%c'\n", ch);
return 0;
}

在WINDOWS/MS-DOS中,也可以利用getch()函数让程序调试运行结束后等待编程者按下键盘才返回编辑界面,用法:包含conio.h头文件后,在主函数结尾,return 0;之前加上getch();即可

*/

方法四:
#include
int main()
{
while(!kbhit());//可以用其它的循环

return 0;
}

kbhit

开放分类:编程、函数、计算机、C语言

函数名: kbhit
功 能: 检查当前按下的键
用 法: int kbhit(void);
程序例:

#include<conio.h>

#include<stdio.h>

int main(void)

{

printf("Press any key to continue:");

while (!kbhit()) /* do nothing */ ;

eprintf("\r\nA key was pressed...\r\n");

return 0;

}

kbhit() 在执行时,检测是否有按键按下,有按下返回键值
没有按下返回0;是非阻塞函数
getch() 在执行时,检测按下什么键,如果不按键该函数不返回;是阻塞函数

方法五:增加中断,只适用于调试

原创粉丝点击