C语言有四个水渠,C语言笔记、文件io的操作

一个自己定义的头文件:

文件名为 xxx.h

内容:

#ifndef _MYHEAD_H

#define _MYHEAD_H

#include

#include

#include

#include

#include

#endif

红色字体必须存在,中间可以添加你所有需要的头文件

------------------------------------------------------------------

对于文件的操作

#include "myhead.h"

int main()

{

//1.打开文件

int fd = open("./1.txt",O_RDWR);

if(fd == -1)

{

printf("open file faield\n");

return -1;//异常退出

}

printf("open file OK~~~\n");

//2.将内容写入到文件

char buf[10] = "hellomeinv";

int w_size = write(fd,buf,sizeof(buf));

if(w_size == -1)

{

printf("write failed\n");

return -1;

}

/*

******************************************************

lseek函数可以用于文本文件的光标重新定位,因为打开一个文本文档后,如果需要阅读光标就是直接在文件内容的最后面,从而导致查看文档时不能查看,使用lseek()

off_t lseek(int fd, off_t offset, int whence);

随机定位符

fd:需要移动文件光标所对应的文件描述符

offest:光标的偏移量

whence:从哪里开始偏移

SEEK_SET:从文件起始位置开始偏移

SEEK_CUR:从文件的当前位置开始偏移

SEEK_END:从文件的末尾开始偏移

举例:

lseek(fd,-10,SEEK_END)  //从文件的末尾开始向前偏移10个字节的单位长度

*/

lseek(fd,-10,SEEK_END);

——————————————————

也可以不适用lessk函数而在每次操作完文件关闭文件。

代码可以是:

close(fd);

int fd = open("./1.txt",O_RDWR);

if(fd == -1)

{

printf("open file faield\n");

return -1;//异常退出

}

printf("open file OK~~~\n");

重新打开接第三步,读取文件内容。

********************************************************************************************************

lseek(fd,-10,SEEK_END);

//3.读取文件内容并且打印出来

char buff[128] = {0};

int r_size = read(fd,buff,sizeof(buff));

if (r_size == -1)

{

printf("read failed\n");

return -1;

}

//打印文件内容

printf("%s\n",buff);

close(fd);

return 0;

}

——————————————————————————————————————

如何复制一个文本文档。

#include "myhead.h"

int main()

{

//创建一个新文件

int fd = open("./3.txt",O_RDWR|O_CREAT,0777);

if (fd == -1)

{

printf("creat file failed\n");

return -1;

}

//打开要复制的文件

int fdd = open("./1.txt",O_RDWR);

if (fdd == -1)

{

printf("open 1.txt failed\n");

return -1;

}

char k[120] = {0};

int r_read,r_write;

//使用while循环实现读取和写入。

while(1)

{

r_read = read(fdd,k,sizeof(k));

r_write = write(fd,k,sizeof(k));

if (r_write == -1)

{

printf("write failed\n");

return -1;

}

printf("over\n");

break;

}

close(fdd);

close(fd);

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值