12380网站建设意见,室内装饰设计师,给个网址2021年能用的,徐州免费网站制作5.11
文件IO函数
1.数据读写
ssize_t read(int fd,void *buf,size_t count);
功能#xff1a;
从fd对应的文件中 读取前count个字节的数据到buf缓冲区中
头文件#xff1a;
#include unistd.h
参数#xff1a;
fd #xff1a;文件描述符
buf…5.11
文件IO函数
1.数据读写
ssize_t read(int fd,void *buf,size_t count);
功能
从fd对应的文件中 读取前count个字节的数据到buf缓冲区中
头文件
#include unistd.h
参数
fd 文件描述符
buf缓冲区首地址
count要读取的字节数
返回值
成功
0 : 实际读取到的字节数
0读取到文件末尾
失败-1 并设置错误信息
ssize_t write(int fd,void *buf,size_t count);
功能
将buf缓冲区前count个字节的数据写入fd对应的文件的中
头文件
#include unistd.h
参数
fd 文件描述符
buf缓冲区首地址
count要读取的字节数
返回值
成功
0 : 实际读取到的字节数
失败-1 并设置错误信息
int close(int fd);
关闭文件但不同于fclose因为没有缓存所以不能关闭缓存
off_t lseek(int fd,off_t offset,int whence);
功能
将fd对应文件中的指针以whence为基准点偏移offset字节
头文件
#include sys/types.h
#include unistd.h
参数
fd文件描述符
offset偏移量
whence基准点(SEEK_SET ,SEEK_CUR ,SEEK_END)
返回值
成功返回实际偏移量
失败-1并设置错误信息
动态库和静态库的分析
库
是一段可执行的 “二进制” 代码能被操作系统加载到内存中运行的。
C库是个静态库。
静态库libxxx.a
程序在编译阶段就链接到目标代码中目标代码体积变大。
优点程序运行时不依赖任何库。
缺点目标文件体积变大。
创建静态库流程
1. gcc -c xx.c 生成 xx.o 目标文件 ar crs libxx.a xx.o 将目标文件创建生成libxxx.a 静态库文件 静态库的使用 gcc *.c 路径/libxxx.agcc *.c -L路径 -l库名 注意 -L路径 路径为库的存放路径
动态库共享库libxxx.lib
程序在运行时被链接到代码中执行目标文件体积不变。
优点目标文件相对体积小。
缺点运行时必须有库存在
创建动态库 gcc -fPIC -c xxx.c :将xxx.c 文件编译生成与地址无关的xxx.o目标文件 gcc -share -o libxxx.so xx.o :将xxx.o编译成共享的libxxx.so 动态库
使用流程
gcc *.c -lxxx