上一页 1 ··· 3 4 5 6 7 8 9 10 下一页
摘要: [a] 概念 建议锁:在遵循相同记录锁规则的进程/线程间生效,通常用于保证某个程序自身多个进程/线程间的数据一致性 强制锁:意在保证所有进程间的数据一致性,但不一定有效;如不能应对先 unlink 后建立同名副本的行为 [b] fcntl 操纵记录锁时,fcntl 的第三个参数是一个指向 flock 阅读全文
posted @ 2015-01-03 18:09 范辉 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 通常情况下,线程模型的并发性能优于进程模型,但不总是这样 线程的优势: 线程的劣势: *nix 平台下的线程实现 线程的创建与终止 pthread_self 函数用于线程取得自身的线程 ID 此处的 ID 是用户空间的概念,只在线程所属的进程环境下有意义,通常情况下就是一个指向特定结构体的内存地址( 阅读全文
posted @ 2014-12-25 10:40 范辉 阅读(168) 评论(0) 推荐(0) 编辑
摘要: [a] socket / socketpair 套接字描述符本质上是就是文件描述符 socket 类型由三个参数共同确定 domain:AF_UNIX / AF_LOCAL / AF_INET / AF_INET6,其中 AF_LOCAL 是 AF_UNIX 的别名 type:SOCK_STREAM 阅读全文
posted @ 2014-12-22 09:21 范辉 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 管道 pipe 一、概述 管道(pipe / FIFO)是一种文件,属于 pipefs 文件系统类型,可以使用 read、write、close 等系统调用进行操作 其本质是内核维护了一块缓冲区与管道相关联,对管道的任何操作,都将被内核转换成读写对应的内存缓冲区 只有当所有的写入端描述符均已关闭,且 阅读全文
posted @ 2014-12-21 11:27 范辉 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 库:/usr/lib64/libmysqlclient.so.#.#... 头文件:/usr/lib64/mysql/mysql.h 一、建立连接 MYSQL *mysql_init(MYSQL *); 用于初始化连接句柄,通常以NULL作为参数,执行成功则返回一个指向新分配的连接句柄结构的指针,失 阅读全文
posted @ 2014-12-20 14:09 范辉 阅读(155) 评论(0) 推荐(0) 编辑
摘要: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/ http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c6 阅读全文
posted @ 2014-12-20 07:45 范辉 阅读(184) 评论(0) 推荐(0) 编辑
摘要: [a] 概述 kqueue API 由两个函数(kqueue、kevent)、一个辅助宏(EV_SET)、一个结构体(struct kevent)构成,可以应用于 socket、FIFO、pipe、aio、signal、process、regular file、path 等对象 与 Linux 下的 阅读全文
posted @ 2014-12-19 07:44 范辉 阅读(902) 评论(0) 推荐(1) 编辑
摘要: 一、分散聚离(向量) I/O [a] readv / writev 用于针对多个不连续缓冲区同时写入写出的原子操作,减少了系统调用次数,通常提供比线性 I/O 更高的效率与性能 参数 iov 是指向 iovec 结构体的数组的指针,当其元素数量 <=8 时,系统通常会在栈上分配空间以优化性能 按数组 阅读全文
posted @ 2014-12-18 23:25 范辉 阅读(152) 评论(0) 推荐(0) 编辑
摘要: [a] 常用信号 SIGABRT 调用 abort 函数时产生此信号,进程异常终止 SIGALRM 调用 alarm 或 setitimer 函数超时之后产生 SIGCHLD 子进程终止或 stop 时内核向父进程发送此信号 SIGFPE 算术异常,如除以 0 或浮点溢出等 SIGHUP 终端连接断 阅读全文
posted @ 2014-12-16 20:10 范辉 阅读(193) 评论(0) 推荐(0) 编辑
摘要: [a] getpgid / setpgid setpgid 用于改变指定进程的进程组或创建新的进程组 若 pid 为 0,则将调用进程自身转移到指定进程组 若 pgid 为 0,则以 pid 为首进程创建新的进程组 若二者同时为 0,即以调用进程自身为首进程创建新的进程组 getpgid(0) 显示 阅读全文
posted @ 2014-12-15 19:49 范辉 阅读(131) 评论(0) 推荐(0) 编辑
摘要: [a] getpid / getppid / getuid / geteuid / getgid / getegid 获取当前进程的进程id、父进程id、实际用户id、有效用户id、实际组id、有效组id [b] fork 父子进程的执行没有固定的先后順序,需要手动控制 子进程不继承父进程设置的文件 阅读全文
posted @ 2014-12-13 13:45 范辉 阅读(176) 评论(0) 推荐(0) 编辑
摘要: [a] exit / _Exit / _exit exit 在终止进程之前会调用 fflush 及 fclose 类 UNIX 平台上,_Exit 与 _exit 相同,直接终止进程而不做清理工作 [b] atexit 进程正常终止前执行的函数,无返回值无参数,执行順序与声明順序相反 [c] mal 阅读全文
posted @ 2014-12-12 11:10 范辉 阅读(160) 评论(0) 推荐(0) 编辑
摘要: [a] getpwent / setpwent / endpwent getpwent 逐条访问并返回下一项的结构体指针 setpwent 打开并返绕至文件开头 endpwent 关闭所有打开的相关文件 各系统至少支持 struct passwd 中的 7 项,FreeBSD 环境下特权进程可获取加 阅读全文
posted @ 2014-12-11 09:49 范辉 阅读(284) 评论(0) 推荐(0) 编辑
摘要: [a] setvbuf / setbuf mode:_IONBF / _IOLBF / _IOFBF,即无缓冲、行缓冲、全缓冲 setvbuf:若 mode 为 _IONBF,忽略 buf 与 size 的值;若 buf 为 NULL 且为缓冲模式,可不指定 size,系统将自动分配 setbuf 阅读全文
posted @ 2014-12-08 23:55 范辉 阅读(165) 评论(0) 推荐(0) 编辑
摘要: [a] stat / lstat / fstat 成功返回 0, 出錯返回 -1 lstat 不追踪软链接目标文件, 可获得软链接本身的状态信息, 软链接的文件大小等于其所指向的目标文件名称的字符数量 文件的状态信息将写入事先定义的 stat 結构体中 文件类型的判断, 由于每种文件类型并不独占相应 阅读全文
posted @ 2014-12-06 21:21 范辉 阅读(154) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 下一页