linux open read 和write的系统调用出现了点顺序问题。。。
#include<stdlib.h>
#include<unistd.h>
#include<fcntl.h>
#include<sys/stat.h>
int main(){
int in_fd;
int out_fd;
char buffer;
char buff[10];
int tmp;
int i=0;
in_fd=open("write.c",O_RDONLY);
out_fd=open("out",O_WRONLY|O_CREAT,S_IRUSR|S_IWUSR);
while(read(in_fd,&buffer,1)==1 && i<10){
write(out_fd,&buffer,1);
putchar(buffer); //这里输出10个字符。。
i++;
}
tmp=read(in_fd,buff,4);
if(tmp==-1)
write(2,"error",tmp);
else
{
write(1,buff,tmp); //这里也是输出4个字符
}
exit (0);
}
putchar(buffer); //这里输出10个字符。。
fflush(stdout); //刷新下缓冲区,阻塞在里面了!
i++;