我现在是通过open()系统调用函数生成file.in文件,并把file.in里的内容拷贝到file.out.开始写的程序如下:
#include<unistd.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<stdlib.h>
int main(){
char c;
int in, out;
in=open("file.in",O_RDWR | O_CREAT,S_IRUSR | S_IWUSR);
if((write(in,"I am programer\n",15))!=15)
write(2,"error\n",6);
out=open("file.out",O_WRONLY | O_CREAT,S_IRUSR | S_IWUSR);
while((read(in,&c,1)==1))
write(out,&c,1);
exit(0);
}
经过运行./copy_file
后使用命令cat file.out
,结果为空。
后来改了程序如下:
#include<unistd.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<stdlib.h>
int main(){
char c;
int in, out;
in=open("file.in",O_WRONLY | O_CREAT,S_IRUSR | S_IWUSR);
if((write(in,"I am programer\n",15))!=15)
write(2,"error\n",6);
in=open("file.in",O_RDONLY);
out=open("file.out",O_WRONLY | O_CREAT,S_IRUSR | S_IWUSR);
while((read(in,&c,1)==1))
write(out,&c,1);
exit(0);
}
运行cat file.out
结果显示I am programer
。
有没大神能解释下第一个程序为什么出现错误呢,谢谢!
第一个程序write之后close一下试试