归纳整理Linux下C语言常用的库函数----文件操作
在没有IDE的时候,记住一些常用的库函数的函数名、参数、基本用法及注意事项是很有必要的。
参照Linux_C_HS.chm的目录,我大致将常用的函数分为一下几类:
- 1. 内存及字符串控制及操作
- 2. 字符串转换
- 3. 字符测试
- 4. 文件操作
- 5. 时间日期
- 6. 常用数学函数
- 7. 文件内容操作
- 8. 文件权限控制
- 9. 进程操作
- 10. 线程操作
- 11. Socket操作
- 12. 信号处理
- 13. 数据结构及算法
这次主要总结的是上面黑色部分,关于文件操作的函数。
- 系统调用归类
*
* 函数名 用法 备注
*
*. int open(const char *pathname, int flags); open and possibly create a file or device flags 必须包含O_RDONLY, O_WRONLY, or O_RDWR中的任何一个
*
*. int open(const char *pathname, int flags, mode_t mode); UP mode只是在flags中包含O_CREAT时才有效
*
*. int fsync(int fd); synchronize a file's in-core state with storage device 写完数据close前必须先同步,以防意外
*
*. off_t lseek(int fd, off_t offset, int whence); 定位文件位置 第三个参数可以为SEEK_SET SEEK_CUR SEEK_END
*
*. ssize_t read(int fildes, void *buf, size_t nbyte); UP 文件位置会随读取的字节数移动
*
*. ssize_t write(int fildes, const void *buf, size_t nbyte); UP UP
*
*. int close(int fd); UP UP
*
*. void *mmap(void *addr, size_t length, int prot, int flags, 内存映射 先用fstat得到文件大小,然后使用该函数将文件内容映射到内存中,然后就可以 int fd, off_t offset); 直接调用字符串函数操作。
*
*. int munmap(void *addr, size_t length); 释放内存 UP
*
*. int ftruncate(int fd, off_t length); truncate a file to a specified length 在新建文件时,如果用到内存映射,那么就需要先调用该函数给文件预置一个大小,否则会出错
*
*. int fstat(int fd, struct stat *buf); 获得文件的基本信息 具体参数见man,可以查到文件的大小、修改日期等
*
- C99标准归类
/*标准C函数
* 函数名 用法 备注
*
*1. FILE *fopen(const char *path, const char *mode); NT mode可以为r,r+,w,w+,a,a+,rw等
*
*2. int fseek(FILE *stream, long offset, int whence); NT 定位文件位置
*
*3. long ftell(FILE *stream); 当前文件位置 NT
*
*4. void rewind(FILE *stream); 移动文件位置到文件头 NT
*
*5. size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); NT NT
*
*6. size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream); NT NT
*
*7. int feof(FILE *stream); 判断文件是否已经读完 NT
*
*8. int fscanf(FILE *stream, const char *format, ...); 按格式读取文件流 还有scanf家族的其他函数,比如sscanf可以读取字节流
*
*9. int fprintf(FILE *stream, const char *format, ...); 按格式将内容写入到文件中 还有sprintf,vprintf等等
*
*10. int vfprintf(FILE *stream, const char *format, va_list ap); 直接将不定参数写入到文件 相对应的还有读取函
*
*11. int fflush(FILE *stream); NT NT
*
*12. char *fgets(char *s, int size, FILE *stream); NT 读到换行符或EOF时停止
*
*13. int fileno(FILE *stream); 返回整型文件描述符 这是和GLIBC相通的地方
*
*14. int fputs(const char *s, FILE *stream); NT 不写入结束符\0
*
*/
- 文件权限控制类函数汇总
* 函数名 用法 备注
*
*. int remove(const char *pathname); NT 删除指定路径的文件
*
*. int rename(const char *old, const char *new); NT 重命名
*
*. int utime(const char *path, const struct utimbuf *times); NT 修改文件的存取时间
*
*. int stat(const char *restrict path, struct stat *restrict buf); NT 可以进一步获得文件的详细信息
*
*. int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);
NT 读取文件夹内容
*
*. DIR *opendir(const char *name); NT 打开文件夹,这是第一步
*
*. char *getcwd(char *buf, size_t size); NT 获得当前的绝对路径
*
*. int chmod(const char *path, mode_t mode); NT 改变文件权限
*
*. int closedir(DIR *dirp); NT 打开文件夹后必须要关闭
*
*. int chdir(const char *path); NT 改变当前的工作目录
*
- 附加,处理不定参需要用到的函数
*
*. void va_start(va_list ap, last); 必须首先被调用
*
*. type va_arg(va_list ap, type); 紧接着,根据%s %d %c得到实际的值
*
*. void va_end(va_list ap); 得到需要的值后,就调用end。
*
*
如上,只是对常用的函数进行简单的总结,一些不常用的,比如链接之类的,就没有进行归类。
这些函数,至少要知道有这些功能,而不需要自己再去实现,具体参数不清楚的,知道函数名后,在Linux下,用man fun就可以有更具体的阐述。
归纳整理Linux下C语言常用的库函数----文件操作的更多相关文章
- 归纳整理Linux下C语言常用的库函数----内存及字符串控制及操作
在没有IDE的时候,记住一些常用的库函数的函数名.参数.基本用法及注意事项是很有必要的. 参照Linux_C_HS.chm的目录,我大致将常用的函数分为一下几类: 1. 内存及字符串控制及操作 2. ...
- 归纳整理Linux下C语言常用的库函数----时间日期数学及算法
在没有IDE的时候,记住一些常用的库函数的函数名.参数.基本用法及注意事项是很有必要的. 参照Linux_C_HS.chm的目录,我大致将常用的函数分为一下几类: 1. 内存及字符串控制及操作 2. ...
- 归纳整理Linux下C语言常用的库函数----字符串转换、字符测试、及内存控制
在没有IDE的时候,记住一些常用的库函数的函数名.参数.基本用法及注意事项是很有必要的. 参照Linux_C_HS.chm的目录,我大致将常用的函数分为一下几类: 1. 内存及字符串控制及操作 2. ...
- 笔记整理——Linux下C语言正则表达式
Linux下C语言正则表达式使用详解 - Google Chrome (2013/5/2 16:40:37) Linux下C语言正则表达式使用详解 2012年6月6日Neal627 views发表评论 ...
- LINUX下C语言编程基础
实验二 Linux下C语言编程基础 一.实验目的 1. 熟悉Linux系统下的开发环境 2. 熟悉vi的基本操作 3. 熟悉gcc编译器的基本原理 4. 熟练使用gcc编译器的常用选项 5 .熟练使用 ...
- Unix和Linux下C语言学习指南
转自:http://www.linuxdiyf.com/viewarticle.php?id=174074 Unix和Linux下C语言学习指南 引言 尽管 C 语言问世已近 30 年,但它的魅力仍未 ...
- LINUX下C语言编程调用函数、链接头文件以及库文件
LINUX下C语言编程经常需要链接其他函数,而其他函数一般都放在另外.c文件中,或者打包放在一个库文件里面,我需要在main函数中调用这些函数,主要有如下几种方法: 1.当需要调用函数的个数比较少时, ...
- Linux下提权常用小命令
有些新手朋友在拿到一个webshell后如果看到服务器是Linux或Unix操作系统的就直接放弃提权,认为Linux或Unix下的提权很难,不是大家能做的,其实Linux下的提权并没有很多人想象的那么 ...
- linux下C语言多线程编程实例
用一个实例.来学习linux下C语言多线程编程实例. 代码目的:通过创建两个线程来实现对一个数的递加.代码: //包含的头文件 #include <pthread.h> #include ...
随机推荐
- idea上查看本文件svn修改的历史版本
如上图依次点击,得到下图,比较即可:
- [转载]从B 树、B+ 树、B* 树谈到R 树
从B 树.B+ 树.B* 树谈到R 树 作者:July.weedge.Frankie.编程艺术室出品. 说明:本文从B树开始谈起,然后论述B+树.B*树,最后谈到R 树.其中B树.B+树及B*树部分由 ...
- keil软件相关问题汇总
目录 一.keilc51——F12无法定位到定义处. 二.关于STM37F7的pack包不能安装报错SVD问题. 三.关于"Insufficient RAM for Flash Algori ...
- 二叉树的基本功能实现方法(C++)
假设:有一个n个元素的完全二叉树,为了使其成为满二叉树,补全没有孩子的节点是的除了叶节点所有节点都有两个孩子,即最低层皆为-1. 例1: 1 2 3 4 5 -1 6 -1 -1 -1 ...
- UML类图中的各种箭头代表的含义(转自:http://www.cnblogs.com/damsoft/archive/2016/10/24/5993602.html)
1.UML简介Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是他 ...
- I.MX6 PWM buzzer driver hacking with Demo test
/***************************************************************************** * I.MX6 PWM buzzer dr ...
- Hibernate对象的三种状态,瞬时态、持久态、游离态
1.瞬时态.(new完一个对象,突然断电,内存中没有此对象) hibernate中什么时候的对象为瞬时态呢,当我们new 一个对象时,还没有save时,它就是瞬时态的,当我们delete一个对象时,它 ...
- 【liunx】telnet命令
telnet命令用于登录远程主机,对远程主机进行管理.telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了.但仍然有很多别的系统可能采 ...
- hasura graphql auth-webhook api 说明
hasura graphql 生产的使用是推荐使用webhook 进行角色访问控制的,官方同时提供了一个nodejs 的简单demo 代码 git clone https://github.com/h ...
- WiFi密码破解详细图文教程
每天都能看到有不少网友在回复论坛之前发布的一篇破解WiFi密码的帖子,并伴随各种疑问.今天流云就为大家准备一篇实战型的文章吧,详细图文从思维CDlinux U盘启动到中文设置,如何进行路由SSID扫描 ...