文件I/O的操作实例

时间:2022-12-25 14:23:02

1_open.c:

#include <sys/types.h>
#include <stdio.h>
#include <sys/stat.h>
#include <fcntl.h> int main(int argc,char *argv[])
{
int fd; //文件描述符 /*以读的方式打开一个文件,如果文件不存在,则返回错误*/
fd = open("test.txt",O_RDONLY);
if(fd < ){
perror("open");
return -;
}
printf("fd == %d\n",fd); return ;
}

2_open.c:

#include <sys/types.h>
#include <stdio.h>
#include <sys/stat.h>
#include <fcntl.h> int main(int argc,char *argv[])
{
int fd; //文件描述符 /*以读的方式打开一个文件,如果文件不存在,则创建它*/
fd = open("test.txt",O_RDONLY | O_CREAT,);
if(fd < ){
perror("open");
return -;
}
printf("fd == %d\n",fd); return ;
}

3_read.c:

#include <sys/types.h>
#include <stdio.h>
#include <sys/stat.h>
#include <fcntl.h> int main(int argc,char *argv[])
{
int fd; //文件描述符
int ret;
char buf[] = {}; /*读取标准终端 : 0 (STDIN_FILENO)*/
ret = read(,buf,sizeof(buf)-);
if(ret > ){
/*读取成功*/ /*打印到终端*/
printf("%s\n",buf);
} return ;
}

4_read.c:

#include <sys/types.h>
#include <stdio.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h> int main(int argc,char *argv[])
{
int fd; //文件描述符
int ret;
char buf[] = {}; /*打开一个文件,以读的方式*/
fd = open("test.txt",O_RDONLY);
if(fd < ){
perror("open test");
return -;
} /*把文件指针移动到文件头*/
lseek(fd,,SEEK_SET); /*读取标准终端 : 0 (STDIN_FILENO)*/
ret = read(fd,buf,sizeof(buf)-);
if(ret > ){
/*读取成功*/ /*打印到终端*/
printf("%s\n",buf);
} return ;
}

5_write.c:

#include <sys/types.h>
#include <stdio.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h> int main(int argc,char *argv[])
{
int fd; //文件描述符
int ret;
char buf[] = {}; /*打开一个文件,以读的方式*/
fd = open("test.txt",O_RDONLY);
if(fd < ){
perror("open test");
return -;
} /*把文件指针移动到文件头*/
lseek(fd,,SEEK_SET); /*读取标准终端 : 0 (STDIN_FILENO)*/
ret = read(fd,buf,sizeof(buf)-);
if(ret > ){
/*读取成功*/ /*打印到终端*/
write(,buf,ret);
} return ;
}

6_write_read.c:

#include <sys/types.h>
#include <stdio.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h> int main(int argc,char *argv[])
{
int fdr; //文件描述符
int fdw;
int ret;
char buf[] = {}; /*打开一个文件,以读的方式*/
fdr = open("test.txt",O_RDONLY);
if(fdr < ){
perror("open test");
return -;
} /*打开一个文件dest.txt,用于写,如果文件不存在,则创建*/
fdw = open("dest.txt",O_WRONLY | O_CREAT,);
if(fdw < ){
perror("open dest");
return -;
} /*把文件指针移动到文件头*/
lseek(fdr,,SEEK_SET); /*读取标准终端 : 0 (STDIN_FILENO)*/
ret = read(fdr,buf,sizeof(buf)-);
if(ret > ){
/*读取成功*/ /*写入到文件dest.txt*/
write(fdw,buf,ret);
} return ;
}