- 浏览: 252697 次
- 性别:
-
最新评论
文章列表
相关函数列表
//管道
#include <unistd.h>
int pipe(int fd[2]);
//标准I/O库提供了两个函数,实现的操作是创建一个管道fork一个子进程关闭未
//使用的管道端,执行一个shell运行命令,然后等待命令终止
//type类似fopen函数 ...
相关函数列表
//调用open函数时指定O_NONBLOCK参数即可打开非阻塞I/O
//记录锁
#include <fcntl.h>
int fcntl(int fd, int cmd, ... /* struct flock *flockptr */ );
//锁记录的 flock结构体
struct flock {
short l_type; //希望加锁的类型(读锁,写锁,解锁)
short l_whence; //要加锁的偏移类型SEEK_SET,SEEK_CUR,SEEK_END
of ...
相关函数列表
//syslog函数
#include <syslog.h>
void openlog(const char *ident, int option, int facility);
void syslog(int priority, const char *format,...);
void closelog(void);
int setlogmask(int maskpri);
//除syslog,很多平台还提供它的一种变体来处理可变参数列表
#include <syslog.h>
#include <std ...
相关函数列表
//线程属性,pthread_attr_t结构体保护的就是操作系统实现支持的所有线程属性
//下面所有函数都是是成功返回0,否则返回错误编号
#include <pthread.h>
int pthread_attr_init(pthread_attr_t *attr);
int pthread_attr_destroy(pthread_attr_t *attr);
//如果对某个线程终止状态不感兴趣,可以使用pthread_detach函数让系统在
//线程退出时收回所占用的资源
//可以detachstate为以下两个值
//1 ...
相关函数列表
//对两个线程ID进行比较
//若相等返回非0数值,否则返回0
#include <pthread.h>
int pthread_equal(pthread_t tid1, pthread_t tid2);
//获得线程自身的ID
#include <pthread.h>
pthread_t pthread_self(void);
//创建新线程
//pt ...
相关函数列表
//系统信号机制最简单的接口是signal函数
#include <signal.h>
void (*signal(int signo, void (*func)(int))) (int);
//kill可以将信号发送给进程或进程组,raise允许进程向自身发送信号
#include <signal.h>
int kill(pid_t pid, int signo);
int raise(int signo); //raise(signo) 等于 kill(getpid(), signo)
//kill的pid参数 ...
相关函数列表
//返回调用进程的进程组ID
#include <unistd.h>
pid_t getpgrp(void);
pid_t getpgid(pid_t pid);
//getpgid(0) 等于 getpgrp()
//创建一个新会话
#include <unistd.h>
pid_t setsid(void);
pid_t getsid(get_t pid); //返回会话首进程 ...
相关函数列表
//下列函数返回一个进程的标识符
#include <unistd.h>
pid_t getpid(void);
pid_t getppid(void);
uid_t getuid(void);
uid_t geteuid(void);
gid_t getgid(void);
gid_t getegid(void);
//创建新进程
#include <unistd.h>
pid_t fork(void);
pi ...
相关函数列表
//退出函数
#include <stdlib.h>
void exit(int status);
void _Exit(int status);
#include <unistd.h>
void _exit(int status);
//按照ISO C的规定,一个进程可以登记多至32个函数,这些函数将由exit自动
//调用。我们称这些函数为终止处理程序(exit handler),并调用atexit函数来
//登记这些函数,这个函数起始就是注册退出钩子函数,退出程序时执行一些自定义的函数
//执行的顺序和注册的顺序 ...
相关函数列表
//passwd结构体 /etc/passwd
struct passwd {
char *pw_name; //用户名
char *pw_passwd; //加密口令
uid_t pw_uid; //数值用户ID
gid_t pw_gid; //数值组ID
char *pw_gecos; //注释字段
char *pw_dir; //初始化工作目录
char *pw_shell; ...
相关函数列表
//设置流的定向
#include <stdio.h>
#include <wchar.h>
int fwide(FILE *fp, int mode);
//标准输入,标准输出,标准错误
#include <stdio.h>
//stdin,stdout,stderr
//设置缓冲区
#include <stdio.h>
void setbuf(FILE ...
相关函数列表
//stat获取文件的状态信息
//fstat 根据fd返回相关信息
//lstat 返回该符号链接有关信息
//fstatat为一个相当于当前打开目录的路径名返回文件统计信息
#include <sys/stat.h>
int stat(const char *restrict pathname, struct stat *restrict buf);
int fstat(int fd, struct stat *buf);
int fstat(const char *restrict pathname, struct stat ...
#include <fcntl.h>
int open(const char *path, int oflag, /* mode_t mode */ );
int openat(int fd, const char *path, int oflag, /* mode_t mode */ );
//返回文件描述符
STDIN_FILENO //标准输入
STDOUT_FILENO //标准输出
#include<fcntl.h>
int creat(const char *path, mode_t moe);
// ...
源文件和头文件
源文件的扩展名是 .c 结尾,每个源文件包含函数和变量定义,其中一个源文件包含main()函数
多个源文件可以共享一些变量和函数,通过#include指令包含进来,这种包含的文件就是 头文件,扩展名是.h
// ...
位运算符
使用底层技术进行一些位操作,可以编写加密,视频程序,以及需要高速执行或高效利用空间的程序非常有用。但是过度依赖底层操作会导致程序丧失可移植性。如果一定要使用尽量将操作限定在特定的模块中而不要分散在各处。
符号
含义
<<
左移位
>>
右移位
~
按位求反
&
按位与
^
按位异或
|
按位或
为了可移植性,最好仅对无符号数进行移位运算
优先级来说,依次是 ~ ,&, ^, |
//这些操作符不会改变原有变量的值,所以需要如下
i <<= 2; ...