最近学习了在Linux平台上使用strace来观察程序所调用的系统调用,它给出的输出中涉及到了很多Linux平台的系统调用,这里我搜集了一些常见的,以备参考:
int access (const char *pathname, int mode);
检查当前用户对于文件所拥有的权限(R_OK, W_OK, X_OK),或是检查文件是否存在(F_OK)
int fcntl (int fd, int cmd, long arg);
操作文件描述符fd对应的文件
int fstat (int fd, struct stat *buf);
返回文件描述符fd对应的文件的状态
long getcwd (char *buf, unsigned long size);
获取当前工作目录的绝对路径
int getrlimit (int resource, struct rlimit *rlim);
获取资源限制
off_t lseek (int fd, off_t offset, int whence);
重定位读写文件时的偏移量(offset)
ssize_t read (int fd, void *buf, size_t count);
从文件描述符fd对应的文件读
int statfs (const char *path, struct statfs *buf);
获取文件系统统计数据
int uname (struct utsname *buf);
返回系统信息
ssize_t write (int fd, const void *buf, size_t count);
向文件描述符fd对应的文件写