c语言的文件操作

strcpy( writeBUff, test) 复制内容

open函数:
文件路径名 打开后的操作
int open(const char *pathname, intflags); /* 比较常用*/
int open(const char *pathname, intflags, mode_tmode);

O_RDONLY:只读模式 0x 0000 0000
O_WRONLY:只写模式 0x 00000001
O_RDWR:可读可写 0x 00000002

文件路径名 :
O_APPEND 表示追加,如果原来文件里面有内容,则这次写入会写在文件的最末尾。0x00002000
O_CREAT 表示如果指定文件不存在,则创建这个文件 0x0000 0100
O_EXCL 表示如果要创建的文件已存在,则出错,同时返回-1,并且修改errno 的值。
O_TRUNC 表示截断,如果文件存在,并且以只写、读写方式打开,则将其长度截断为0。
O_NOCTTY 如果路径名指向终端设备,不要把这个设备用作控制终端

write函数:
文件 写入数据首地址 写入的个数
ssize_twrite (int fd,const void * buf, size_t count);

read函数:
ssize_tread(int fd, void * buf, size_tcount);


lseek函数光标移动:
off_t lseek(int fd, off_t offset, int whence);光标的偏移量

SEEK_SET:参数offset即为新的读写位置
SEEK_CUR:以目前的读写位置往后增加offset个偏移量
SEEK_END:将读写位置指向文件尾后再增加offset个位移量,当whence值为SEEK_CUR或SEEK_END时,参数offset允许负值的出现。

fread:
int fread(void *buffer,int size,int count,FILE*fp)


memset:
void *memset(void*buffer, int c, int count) //初始化数组
buffer:为指针或是数组
c:是赋给buffer的值
count:是buffer的长度
用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初
始化为‘’或‘/0’;

fwrite:
写入 数组 多少 几个 文件
int fwrite(void*buffer,intsize,intcount,FILE*fp)

fseek:
偏移光标 文件 偏移多少 偏移在哪
int fseek(FILE *stream,long offset,int framewhere)
SEEK_SET 既0 文件开头
SEEK_CUR 既1 文件当前位置
SEEK_END 既2 文件结尾


rewind:
rewind("文件")等价于(void)fseek(fp 0, SEEK_SET);


fputs:
int fputs(const char *s,FILE *stream);
第一个参数:缓存,即写什么内容
第二个参数:写到哪里去
若成功则为非负值,若出错则为EOF -1

fgets:
char *fgets (char *s, int size,FILE *stream)
第一个参数:缓存,即读到哪里去
第二个参数:读多少个字节
第三个参数:从什么地方读
返回值:若成功则为s(缓存的地址),若已处文件尾端或出错则为null

gets()与fgets()的另一个区别是:
gets()并不将新行符存入缓存中, fgets 将新行符存入缓存中

puts()与fputs()的另一个区别是:
puts 输出时会添加一个新行符,fputs不会添加;

posted @   yiye_zhiqiu  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示