文件操作:
S_ISLNK(st_mode):是否是一个连接.
S_ISREG是否是一个常规文件.
S_ISDIR是否是一个目录S_ISCHR是否是一个字符设 备.
S_ISBLK是否是一个块设备
S_ISFIFO是否 是一个FIFO文件.
S_ISSOCK是否是一个SOCKET文件
man 2 stat ...
struct stat {
dev_t st_dev;
ino_t st_ino;
mode_t st_mode;
nlink_t st_nlink;
uid_t st_uid;
gid_t st_gid;
dev_t st_rdev;
off_t st_size;
blksize_t st_blksize;
blkcnt_t st_blocks;
time_t st_mtime;
time_t st_ctime;
}; ...
struct flock
fcntl
gettimeofday
错误处理:
errno== EINTR
进程:
所有用户态进程祖先: init进程 , pid为1
创建进程: fork,vfork,clone
进程退出 exit() wait() 和 waitpid()
信号:
发送信号 kill ,也可以raise()给自己发送信号 ,alarm(2) 定时器 发定时信号
忽略信号 ,
信号屏蔽(sigaction)使用信号集操作
捕捉信号 (signal)
等待信号 pause
信号集操作函数:
int sigemptyset(sigset_t *set);
int sigfillset(sigset_t *set);
int sigaddset(sigset_t *set, int signum);
int sigdelset(sigset_t *set, int signum);
int sigismember(const sigset_t *set, int signum);
线程:
pthread_attr_init
pthread_attr_setschedpolicy
pthread_attr_destroy
sched_get_priority_max
pthread_attr_setschedparam
pthread_attr_setinheritsched
pthread_attr_setscope 线程间竞争CPU的范围,也就是说线程优先级的有效范围
pthread_getconcurrency 并发度
pthread_attr_destroy
sched_get_priority_max
pthread_attr_setschedparam
pthread_attr_setinheritsched
pthread_attr_setscope 线程间竞争CPU的范围,也就是说线程优先级的有效范围
pthread_getconcurrency 并发度
同步函数:用于 mutex 和条件变量
pthread_mutex_init() 初始化互斥锁
pthread_mutex_destroy() 删除互斥锁
pthread_mutex_lock():占有互斥锁(阻塞操作)
pthread_mutex_trylock():试图占有互斥锁(不阻塞操作)。即,当互斥锁空闲时,将占有该锁;否则,立即返回。
pthread_mutex_unlock(): 释放互斥锁
pthread_cond_init():初始化条件变量
pthread_cond_destroy():销毁条件变量
pthread_cond_signal(): 唤醒第一个调用pthread_cond_wait()而进入睡眠的线程
pthread_cond_wait(): 等待条件变量的特殊条件发生
Thread-local storage(或者以Pthreads术语,称作线程特有数据):
pthread_key_create(): 分配用于标识进程中线程特定数据的键
pthread_setspecific(): 为指定线程特定数据键设置线程特定绑定
pthread_getspecific(): 获取调用线程的键绑定,并将该绑定存储在 value 指向的位置中
pthread_key_delete(): 销毁现有线程特定数据键
pthread_attr_getschedparam();获取线程优先级
pthread_attr_setschedparam();设置线程优先级
pthread_mutex_init() 初始化互斥锁
pthread_mutex_destroy() 删除互斥锁
pthread_mutex_lock():占有互斥锁(阻塞操作)
pthread_mutex_trylock():试图占有互斥锁(不阻塞操作)。即,当互斥锁空闲时,将占有该锁;否则,立即返回。
pthread_mutex_unlock(): 释放互斥锁
pthread_cond_init():初始化条件变量
pthread_cond_destroy():销毁条件变量
pthread_cond_signal(): 唤醒第一个调用pthread_cond_wait()而进入睡眠的线程
pthread_cond_wait(): 等待条件变量的特殊条件发生
Thread-local storage(或者以Pthreads术语,称作线程特有数据):
pthread_key_create(): 分配用于标识进程中线程特定数据的键
pthread_setspecific(): 为指定线程特定数据键设置线程特定绑定
pthread_getspecific(): 获取调用线程的键绑定,并将该绑定存储在 value 指向的位置中
pthread_key_delete(): 销毁现有线程特定数据键
pthread_attr_getschedparam();获取线程优先级
pthread_attr_setschedparam();设置线程优先级
工具函数
pthread_equal(): 对两个线程的线程标识号进行比较
pthread_detach(): 分离线程
pthread_self(): 查询线程自身线程标识号
内置函数:
获取日历时间 time_t time(time_t * timer);
获取时间(可以转化日历时间) struct tm * gmtime(const time_t *timer); struct tm * localtime(const time_t * timer);
//固定时间格式
char * asctime(const struct tm * timeptr);
char * ctime(const time_t *timer);
double difftime(time_t time1, time_t time0);
size_t strftime(char *strDest,size_t maxsize,const char *format,const struct tm *timeptr );//自定义时间格式