在Linux下通过read读文件出现的问题

沉默的牧羊者 沉默的牧羊者 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <fcntl.h>

#define infile "temp.dat"
#define outfile "outfile.dat"
#define length 20

void translation()
{
int creatf;
int infd, outfd;
char buf[50];

if ((creatf = open(infile, O_WRONLY | O_TRUNC | O_CREAT, 10700)) == -1)
{
printf("ERROR, OPEN READ FILE FAILED: \n", sys_errlist[errno]);
exit(255);
}
else
{
printf("Create Successful\n");
}

strcpy(buf, "Hello");
if (write(creatf, buf, strlen(buf)) != strlen(buf))

{
printf("ERROR, WRITE FILE FAILED: \n", sys_errlist[errno]);
exit(255);
}
else
{
printf("Write Successful\n");
}


close(creatf);

if (infd = open(infile, O_RDONLY)==-1)
{
printf("ERROR, OPEN READ FILE FAILED: \n", sys_errlist[errno]);
exit(255);
}
else
{
printf("INFILE Open Success\n");
}

if (outfd = open(outfile, O_WRONLY | O_TRUNC | O_CREAT, 10700)==-1)
{
printf("ERROR, OPEN WRITE FILE FAILED: \n", sys_errlist[errno]);
exit(255);
}
else
{
printf("OUTFILE Open Success\n");
}

int count;

while((count = read(infd, buf, sizeof(buf))) > 0) //在这一行就出现程序就停下来了
{
if (write(outfd, buf, count) != count)
{
printf("ERROR, WRITE FILE FAILED: \n", sys_errlist[errno]);
exit(255);
}
else
{
printf("%s", buf);
}
}
close(infd);
close(outfd);
}

void main()
{
translation();
}



在读文件时,程序就停止了,我按回车后才继续显示下一步,但是和预想中的不一样!




上图表示在此处停住了



上图表示停住后,按下回车键时,断断续续的出现的东西(文件里面只写了"Hello")


我想问一下问题到底出在了什么地方??
...全文
评论 4
收藏 已收藏
分享
返回顶部
沉默的牧羊者
C语言 70,039 成员 243,237 内容