免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
论坛 程序设计 C/C++ exit(1)
最近访问板块 发新帖
查看: 2056 | 回复: 6
打印 上一主题 下一主题

[C] exit(1) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-04-03 15:16 |只看该作者 |倒序浏览
exit(1)执行之后怎么就退出程序了?下面的程序还没有执行呢..
比如
if(....)
{
....
exit(1);//出错了,返回出错信息,但是怎么就不执行下面的while了呢?费解


}
while()
{   .....}



具体的程序如下.麻烦帮解释下.太有问题了...............

#include <unistd.h>;
#include <fcntl.h>;
#include <stdio.h>;
#include <sys/types.h>;
#include <sys/stat.h>;
#include <errno.h>;
#include <string.h>;
#define BUFFER_SIZE 1024
int main(int argc,char **argv)
{
int from_fd,to_fd;
int bytes_read,bytes_write;
char buffer[BUFFER_SIZE];
char *ptr;
if(argc!=3)
{
fprintf(stderr,"Usage:%s fromfile tofile\n\a",argv[0]);
exit(1);
}


/* 打开源文件 */
if((from_fd=open(argv[1],O_RDONLY))==-1)
{
fprintf(stderr,"Open %s Error:%s\n",argv[1],strerror(errno));
exit(1);
}
/* 创建目的文件 */
if((to_fd=open(argv[2],O_WRONLY|O_CREAT,S_IRUSR|S_IWUSR))==-1)
{
fprintf(stderr,"Open %s Error:%s\n",argv[2],strerror(errno));
exit(1);
}
/* 以下代码是一个经典的拷贝文件的代码 */
while(bytes_read=read(from_fd,buffer,BUFFER_SIZE))
{
/* 一个致命的错误发生了 */
if((bytes_read==-1)&&(errno!=EINTR)) break;
else if(bytes_read>;0)
{
ptr=buffer;
while(bytes_write=write(to_fd,ptr,bytes_read))
{
/* 一个致命错误发生了 */
if((bytes_write==-1)&&(errno!=EINTR))break;
/* 写完了所有读的字节 */
else if(bytes_write==bytes_read) break;
/* 只写了一部分,继续写 */
else if(bytes_write>;0)
{
ptr+=bytes_write;
bytes_read-=bytes_write;
}
}
/* 写的时候发生的致命错误 */
if(bytes_write==-1)break;
}
}
close(from_fd);
close(to_fd);
exit(0);
}

[ 本帖最后由 dianlongliu 于 2008-4-3 15:29 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-04-03 15:21 |只看该作者
很牛很有意思...

论坛徽章:
0
3 [报告]
发表于 2008-04-03 15:34 |只看该作者

回复 #2 flw2 的帖子

再看看,我把代码都弄出来了.虽然是新手,但是我和认真的对待每个问题..

论坛徽章:
0
4 [报告]
发表于 2008-04-03 15:34 |只看该作者
你认为exit是干什么用的?

论坛徽章:
0
5 [报告]
发表于 2008-04-03 15:36 |只看该作者

回复 #4 LinuxKen 的帖子

返回一个错误的值,并退出当前的进程,转下他的父进程

论坛徽章:
0
6 [报告]
发表于 2008-04-03 15:40 |只看该作者
开个玩笑,别介意

exit结束当前进程,exit之后的代码不会执行的

论坛徽章:
0
7 [报告]
发表于 2008-04-03 15:43 |只看该作者

回复 #6 flw2 的帖子

那这段代码有问题,
我再改下试试,不会介意的,谢谢了:wink:
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP