在Linux下通过read读文件出现的问题
#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")
我想问一下问题到底出在了什么地方??
...全文
相关推荐
Linux下C语言_文件操作
在Linux下C语言对文件操作的函数。如:open(),close(),write(),read()的使用。
linux 读写的流程
我自己通过学习网上的资料、《深入理解linux内核》和linux内核源代码,对sys_read()和sys_write()流程的总结,请多指教!谢谢!
python修改linux中文件(文件夹)的权限属性操作
主要介绍了python修改linux中文件(文件夹)的权限属性操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
Linux内核中读写文件数据的方法
有时候需要在Linux kernel--大多是在需要调试的驱动程序--中读写文件数据。在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主要有:filp_open() filp_close(), vfs_read() vfs_write(),set_fs(),get_fs()等,这些函数在linux/fs.h和asm/uaccess.h头文件中声明,这里将介绍主要步骤
linux 权限设计练习及答案
linux 权限设计练习及答案


