一个自己定义的头文件:

文件名为 xxx.h

内容:

#ifndef _MYHEAD_H   
#define _MYHEAD_H

#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>

#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;
}

C语言笔记、文件io的操作的更多相关文章

  1. Java学习笔记--文件IO

    简介 对于任何程序设计语言,输入和输出(Input\Output)都是系统非常核心的功能,程序运行需要数据,而数据的获取往往需要跟外部系统进行通信,外部系统可能是文件.数据库.其他程序.网络.IO设备 ...

  2. 计算机二级-C语言-对文件的读写操作。链表的定义与赋值。对字符串的遍历和处理。

    //程序填空题:在此程序中,通过定义学生结构体变量,存储了学生的学号,姓名和三门课的成绩.所有学生数据均以二进制方式输出到文件中.函数fun()函数的功能是重写形参filename所指文件中最后一个学 ...

  3. Linux 0.11源码阅读笔记-文件IO流程

    文件IO流程 用户进程read.write在高速缓冲块上读写数据,高速缓冲块和块设备交换数据. 什么时机将磁盘块数据读到缓冲块? 什么时机将缓冲块数据刷到磁盘块? 函数调用关系 read/write( ...

  4. C语言对文件的读写操作以及处理CSV文件的方法

    #include <stdio.h> #define F_PATH "d:\myfile\file.txt" int main(void) { FILE *fp = N ...

  5. Scala学习笔记--文件IO

    补充: http://blog.csdn.net/lyrebing/article/details/20369445 http://developer.51cto.com/art/200907/134 ...

  6. linux 文件 IO 目录操作及文件属性

    ///练习:实现列出某个目录中所有文件属性(文件大小,文件最后修改时间,文件名)//目录名由参数传入 ./dir /home/linux#include <sys/stat.h>#incl ...

  7. go语言笔记——切片函数常见操作,增删改查和搜索、排序

    7.6.6 搜索及排序切片和数组 标准库提供了 sort 包来实现常见的搜索和排序操作.您可以使用 sort 包中的函数 func Ints(a []int) 来实现对 int 类型的切片排序.例如  ...

  8. 树莓派学习笔记——使用文件IO操作GPIO SysFs方式

    0 前言     本文描写叙述假设通过文件IO sysfs方式控制树莓派 GPIO端口.通过sysfs方式控制GPIO,先訪问/sys/class/gpio文件夹,向export文件写入GPIO编号, ...

  9. C语言基础文件读写操作

    整理了一份C语言的文件读写件操作代码,测试时打开相应的注释即可. #include <stdio.h> #include <stdlib.h> #include <uni ...

随机推荐

  1. mybatis实现多表一对一,一对多,多对多关联查询

    原文:https://blog.csdn.net/m0_37787069/article/details/79247321 1.一对一关键字:association作用:针对pojo对象属性的映射  ...

  2. Spring Boot 2 实战:利用Redis的Geo功能实现查找附近的位置

    1. 前言 老板突然要上线一个需求,获取当前位置方圆一公里的业务代理点.明天上线!当接到这个需求的时候我差点吐血,这时间也太紧张了.赶紧去查相关的技术选型.经过一番折腾,终于在晚上十点完成了这个需求. ...

  3. Sharding-JDBC 快速入门第一课

    1.  概述 ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC.Sharding-Proxy和Sharding-Sidecar(计划中)这 ...

  4. platform驱动架构初探

    platform总线是Linux2.6引入的虚拟总线,这类总线没有对应的硬件结构.与之相反,USB总线和PCI总线在内核中是有对应的bus(USB-bus和PCI-bus)的.为了统一管理CPU这些既 ...

  5. python的常用魔法方法详细总结

    构造和初始化 __init__我们很熟悉了,它在对象初始化的时候调用,我们一般将它理解为"构造函数". 实际上, 当我们调用x = SomeClass()的时候调用,__init_ ...

  6. Spring Redis开启事务支持错误用法导致服务不可用

      1.事故背景 在APP访问服务器接口时需要从redis中获取token进行校验,服务器上线后发现一开始可以正常访问,但只要短时间内请求量增长服务则无法响应 2.排查流程 (1)使用top指令查看C ...

  7. BigDecimal类型比较数字大小

    BigDecimal类型比较数字大小1.转成intBigDecimal b1 = new BigDecimal("-121454125453.145");if(b1.intValu ...

  8. Bash 脚本编程的一些高级用法

    概述 偶然间发现 man bash 上其实详细讲解了 shell 编程的语法,包括一些很少用却很实用的高级语法.就像发现了宝藏的孩子,兴奋莫名.于是参考man bash,结合自己的理解,整理出了这篇文 ...

  9. 轻松搞定安全框架(Shiro)

    SpringBoot 是为了简化 Spring 应用的创建.运行.调试.部署等一系列问题而诞生的产物,自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置,我们只需遵循规范,引入相关的依赖 ...

  10. html table表格斜线表头的实现方法总汇

    在html中给table加一个斜线的表头有时是很有必要的,但是到底该怎么实现这种效果呢?总结了以下几种方法: 1.UI背景图实现 直接去找公司的UI,让她做一张图片,作为背景图片放到这里,然后撑满就可 ...