常见系统调用总结
来源:互联网 发布:域名对应多个ip 编辑:程序博客网 时间:2024/04/29 06:08
fcntl
操作文件描述符<span style="font-size:18px;">#include <unistd.h>#include <fcntl.h>Int fcntl(int fd, int cmd, …);</span>
主要的三种用途:
A、 复制文件描述符
F_DUPFD(long),返回新的文件描述符
B、 文件描述符标记位
目前唯一被操作的标记是FD_CLOEXEC
F_GETFD(void)
F_SETFD(long)
C、 文件状态标记
通过open设置的文件状态标记,可以通过fcntl修改,
open
openat()
<span style="font-size:18px;">#include <fcntl.h>int openat(int dirfd, const char *pathname, int flags);int openat(int dirfd, const char *pathname, int flags, mode_t mode);</span>打开指定dirfd目录下的pathname文件路径
A、 openat()可以避免通过调用open()出现的竞争情况
B、 允许实现单个线程的CWD
dlopen(), dlsym(), dlclose(), dlerror()
提供动态链接加载器的操作接口
ldopen操作动态链接库<span style="font-size:18px;">void *dlopen(const char *filename, int flag);#include <dlfcn.h></span>
dlsym()
<span style="font-size:18px;">void *dlsym(void *handle, const char *symbol);</span>
返回symbol所指的内存地址
Sync/syncfs/fsync/fdatasync
fsync:将指定 fd 上的文件数据、以及文件的属性保存到磁盘中,并阻塞直到保存完成。fdatasync:只保证数据本身,不同步文件属性
syncfs:只同步包含指定fd的文件系统的修改
sync:将所有文件的修改(数据和属性)写入到底层文件系统,排入写队列
fdatasync 和 fsync 的作用类似,但是它只保证数据本身被保存到磁盘,但并不同步更新文件的属性(metadata,比如文件的被修改时间,以及文件的大小,等等),对于无须确保文件属性被同步写入的程序,这个调用的性能比同步 fsync 稍高一些。
还有一个条件更弱的调用 —— sync ,它只要求将所有修改过的块缓存区(包括文件数据和文件属性)排入到写队列,然后就返回,它并不等待实际写磁盘操作结束:
0 0
- 常见系统调用总结
- 常见linux系统调用
- 常见的Linux系统调用
- 常见的Linux系统调用
- [转载]Linux常见系统调用
- 系统调用--学习总结
- 系统方法调用总结
- linux 系统调用总结
- 系统调用总结
- Linux常见编译系统总结
- x86中常见的系统功能调用
- linux常见系统调用函数列表
- 文件编程总结(系统调用)
- Intent调用系统程序总结
- Intent调用系统程序总结
- linux 系统调用sysconf【总结】
- Linux时间系统调用总结
- linux 系统调用sysconf【总结】
- android ImageView中setBackground相关属性的区别
- 剑眉大侠提权笔记
- ATL的GUI程序设计(前言)
- 通用mapper的使用
- opencv画图像轮廓的代码
- 常见系统调用总结
- 经典的c++面试题
- 谈一谈对JS闭包的理解
- 函数指针、指针函数类
- 103. Binary Tree Zigzag Level Order Traversal
- LeetCode - Container With Most Water
- poj1811(大质数判定与大数分解的模板题)
- Leetcode #9 Palindrome Number
- Ubuntu16.04 + cuda8.0 + GTX1080 + matlab14.04a + Opencv3.0 + caffe 安装教程