linux
文章平均质量分 69
jiangnanyouzi
这个作者很懒,什么都没留下…
展开
-
《UNP》-IPC学习笔记(1):IPC综述
1. 《UNP》是《UNIX Network Programming》,unix网络编程这本书的简称。作者是:W.Richard Stevens,他是unix与网络方面的专家,他写了几本书,都是unix和网络方面的经典:(1). 《APUE》一卷,《AdvancedProgramming in the UNIX Environment》中文称为unix环境高级编程。是一本详细描述unix类系统调用原创 2008-10-31 09:05:00 · 1978 阅读 · 1 评论 -
linux C项目make:不能更新 的 一个原因
这个问题在昨天工作中遇到,先记一下自己的探索的结果。大致问题如下:程序有3个文件组成,如下显示(工作项目当然要保密的嘛,所以另外自己写了个最简单的小程序来说明问题)/* fun.h */#ifndef FUN_H#define FUN_H#include void fun(int f);#endif/* fun.c */#include "fun.h"void f(int f){ printf("原创 2008-11-15 19:22:00 · 3660 阅读 · 1 评论 -
linux 库文件 生成与使用
1、linux库文件分为静态库和动态库两种。静态库习惯以.a 结尾,而动态库习惯以.so(shared object)结尾。而且必须以lib开头。2、静态库的原则是“以空间换时间”,增加程序体积,减少运行时间;生成:在编译时候,先生成目标文件.o,然后用ar文件对目标文件归档,生成静态库文件。例如:ar -rc libtest.a myalib.o (注意:ar -rc 目标 .o文件名),目标一原创 2008-11-17 19:08:00 · 10674 阅读 · 0 评论 -
IPC同步 笔记之 互斥锁与条件变量
1、这个是针对线程来说的,都以线程作为例子。2、互斥锁(mutual exclusion) 用于保护临界区(critical region),posix互斥锁用变量pthread_mutex_t声明。如果互斥锁变量是静态分配的,用PTHREAD_MUTEX_INITIALIZER 初始化,如果是动态分配(比如:malloc)通过运行pthread_mutex_init初始化。如: pt原创 2008-11-10 15:10:00 · 1122 阅读 · 0 评论 -
linux线程 基本函数 笔记
1、linux中的中主要用的是进程,对线程的操作优势不如windows2、主要以pthread_开头,在用gcc来build时要加上-lpthread选项。3、头文件在4、一个进程中的大部分东西都是多个线程共享的,但是一下东西在每个线程是独立的:线程id号,寄存器集合,用于保存局部变量和返回地址的堆栈,errno,信号掩码,运行的优先级。5、5个函数:a、int pthread_create(pt原创 2008-11-10 14:12:00 · 1456 阅读 · 0 评论 -
IPC笔记之System V信号量
1、概述:System V信号量用三个函数,semget,semop,semctl,分别是信号量集的夺取,操作,控制。其操作对象是信号量集合,semop操作的集合中,这些对象要么全部成功,要么全都不成功。2、信号量的销毁,因为System V信号量是内核持久性的,也就是说销毁方式有两种,要么在进程中显式销毁,要么只有当内核关闭时才销毁。3、内核中与信号量有关的数据结构。内核中维持一份全局的stru原创 2008-11-10 12:13:00 · 4348 阅读 · 2 评论 -
IPC笔记之读写锁
1、概述读写锁(read-write lock),也称为共享独占锁(shared-exclusive 锁),写是独占,读是共享。需要考虑的同步问题:可以同时读,不可以同时写,读写是互斥的。2、读写锁的数据类型是:pthread_rwlock_t。函数如下:int pthread_wrlock(pthread_rwlock_t *rwptr); 夺取写入锁:如果该锁已由另一个写入者持有,或者一个或多原创 2008-11-11 10:15:00 · 860 阅读 · 0 评论 -
《APUE》笔记(1) 文件I/O
1、概述:(1)、unix类操作系统最重要的两个东东:进程和文件(2)、大多数文件I/O用到的5个函数:open, close, read, write, lseek. 还有文件属性操作函数:dup, fcntl(3)、unix类操作系统的文件I/O是不带缓存的I/O(unbuffered-I/O)2、文件描述符(file descriptor ,缩写fd)(1)、unix类系统一般用0,1,2分原创 2008-11-04 15:36:00 · 1230 阅读 · 0 评论 -
IPC学习笔记(2) 管道和FIFO
1、概述管道是最初的UNIX IPC形式,由于管道没有名字,所以只能在用于有亲缘关系的进程(所谓的亲缘关系是指进程间有共同的祖先)。FIFO则被称为命名管道。先说明fork,exec,_exit函数对管道及fifo函数的影响:fork:子进程取得父进程的管道以及fifo描述字的拷贝。exec:所有代开的描述字依旧打开,除非已经设置描述字的FD_CLOEXEC位。_exit:关闭所有打开的描述字,最原创 2008-10-31 13:54:00 · 2581 阅读 · 0 评论 -
linux 守护进程(daemon)的创建方法
用C语言来创建守护进程方法大致如下:int init_daemon(const char *pathname){ struct sigaction act; int max_fd, i, ret; char buf[100]; /* 第一次调用fork,为setsid做准备 */ ret = fork(); if( 0 > ret ) { f原创 2008-11-24 13:51:00 · 1167 阅读 · 0 评论