Linux环境高级编程
2017-09-04 08:39
190 查看
Linux环境高级编程
open 函数
write
read
ssize_t 有符号类型,(typedef定义)
ulimit -n 4096 (设置)
报错的时候把错误码写入errno,strerror(errno)可以得到错误的解释,perror()也可以得到错误的解释
>
lseek
open 函数
#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); int creat(const char *pathname, mode_t mode);
write
#include <unistd.h> ssize_t write(int fd, const void *buf, size_t count);
read
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
ssize_t 有符号类型,(typedef定义)
查看最大打开文件个数的限制(ulimit -a)
ulimit -aulimit -n 4096 (设置)
core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 7976 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 65536 pipe size(512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 7976 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
查看当前系统允许最大文件个数cat /proc/sys/fs/file-max
文件描述符
STDIN_FILENO 0 STDOUT_FILENO 1
error 头文件 errno的值
/usr/include/asm-generic/errno-base.h /usr/include/asm-generic/errno.h #define EPERM 1 /* Operation not permitted */ #define ENOENT 2 /* No such file or directory */ #define ESRCH 3 /* No such process */ #define EINTR 4 /* Interrupted system call */ #define EIO 5 /* I/O error */ #define ENXIO 6 /* No such device or address */ #define E2BIG 7 /* Argument list too long */ #define ENOEXEC 8 /* Exec format error */ #define EBADF 9 /* Bad file number */ #define ECHILD 10 /* No child processes */ #define EAGAIN 11 /* Try again */ #define ENOMEM 12 /* Out of memory */ #define EACCES 13 /* Permission denied */ #define EFAULT 14 /* Bad address */ #define ENOTBLK 15 /* Block device required */ #define EBUSY 16 /* Device or resource busy */ #define EEXIST 17 /* File exists */ #define EXDEV 18 /* Cross-device link */ #define ENODEV 19 /* No such device */ #define ENOTDIR 20 /* Not a directory */ #define EISDIR 21 /* Is a directory */ #define EINVAL 22 /* Invalid argument */ #define ENFILE 23 /* File table overflow */ #define EMFILE 24 /* Too many open files */ #define ENOTTY 25 /* Not a typewriter */ #define ETXTBSY 26 /* Text file busy */ #define EFBIG 27 /* File too large */ #define ENOSPC 28 /* No space left on device */ #define ESPIPE 29 /* Illegal seek */ #define EROFS 30 /* Read-only file system */ #define EMLINK 31 /* Too many links */ #define EPIPE 32 /* Broken pipe */ #define EDOM 33 /* Math argument out of domain of func */ #define ERANGE 34 /* Math result not representable */
报错的时候把错误码写入errno,strerror(errno)可以得到错误的解释,perror()也可以得到错误的解释
#include <string.h> char *strerror(int errnum); #include <stdio.h> void perror(const char *s);
>
lseek
lseek - reposition read/write file offset #include <sys/types.h> #include <unistd.h> off_t lseek(int fd, off_t offset, int whence);
相关文章推荐
- UNIX环境高级编程——Linux系统调用列表
- 管道实现处理分工,实现两数想加 linux环境高级编程
- 《UNIX 环境高级编程》源代码在Linux环境运行方法
- Linux环境高级编程--介绍
- UNIX 环境高级编程(二)—— linux共享库,/etc/ld.so.conf 及 ld.so.conf.d/libc.conf
- UNIX环境高级编程——Linux系统调用列表
- UNIX环境高级编程——Linux终端设备详解
- 在Linux环境下面搭建 UNIX 环境高级编程(第三版) 的代码编译环境
- UNIX环境高级编程——Linux终端设备详解
- Linux环境高级编程:文件IO
- UNIX环境高级编程——Linux终端设备详解
- Linux环境高级编程--介绍
- 《UNIX 环境高级编程》源代码在Linux环境运行方法
- linux下的apue.3e安装[Unix环境高级编程]
- UNIX环境高级编程——Linux进程地址空间和虚拟内存
- 【linux高级环境编程学习笔记一】管道通信
- 【linux高级环境编程学习笔记二】信号通信
- unix环境高级编程 APUE.H最简单编译方法(第二版) Linux和Ubuntu
- UNIX环境高级编程——Linux进程地址空间和虚拟内存
- 【linux高级环境编程学习笔记三】共享内存通信