- 论坛徽章:
- 0
|
小弟在UNIX下运行下面的程序时出现了Segmentation fault,不知道是什么原因
当把最后的return 0改为exit(0)后又正常了.哪位大侠能给解释下吗?
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
/********** open() ***********/
#include <unistd.h>
/********** read() and write() ***********/
#include <string.h>
/********** memset() ***********/
#include <errno.h>
#include <stdio.h>
extern int erron;
int main()
{
int fd;
char buf[1024];
int iSize;
memset(buf,0x00,1204);
/*打开一个文件*/
if((fd = open("test.txt",O_RDWR)) == -1)
{
printf("Open Error\nError No=%d\n",errno);
exit(1);
}
else printf("Open File Success\n");
/*读文件*/
if((iSize = read(fd,buf,1024)) == -1)
{
printf("Read Error\nError No=%\n",errno);
exit(1);
}
else
{
buf[iSize] = 0;
printf("Read Success\nbuf=%s\n",buf);
memset(buf,0x00,1024);
}
/*写文件*/
strcpy(buf,"http://www.starit.com");
if((iSize = write(fd,buf,strlen(buf))) == -1)
{
printf("Write Error\nError No=%d\n",errno);
exit(1);
}
else
{
printf("Write Success\nThe iSize=%d\n",iSize);
memset(buf,0x00,1024);
}
/*关闭文件*/
if(close(fd) != 0)
{
printf("Close File Error\n");
exit(1);
}
else
{
printf("Close File Success\n");
}
printf("111111111111111111\n");
//exit(0);
return 0; |
|