重要函数及类型

1. 变量类型
void *
pid_t
pthread_t
pthread_mutex_t
sem_t

key_t
ipcs -a , -q, -s, -m

msqid_ds




2. 函数
fork()返回值为0子进程,不为0为父进程
getpid()
pthread_create(phread_t *restrict thread.......)
phread_self()
sleep() 秒
usleep() 微秒
phread_join 等待线程退出接受子线程传来的参数,属于阻塞函数
pthread_exit((void*)..可以传参数给主线程

pthread_mutex_init
pthread_mutex_lock
pthread_mutex_unlock
pthread_mutex_destroy


sem_init初始化一个信号量
sem_post增加信号量的值,每次增加的值为1
sem_wait减少信号量的值,如何信号量的值为0,则线程会一直阻塞到信号量的值大于0,当信号量的值已经为0时,不再减少
sem_destroy

key_t IKey1= ftok("/etc/profile",1)生成唯一的一个键值,错误时返回值为-1,选择的文件名应该是长期不发生变化的,且对进程而言是可读的,否则即使相同的参数,产生的键值也不形同

int nMsgId = msgget(IKey1,IPC_CREAT|IPC_EXCL|0666)) == -1 :创建一个消息队列
if((nMsgId = msgget(IKey1,0)) == -1), 根绝键值得到一个消息队列,第二个参数为0

msgsnd(nMsgId,(const void*)&msg,strlen(msg.szText),IPC_NOWAIT)发送消息 错误时返回值小于0
n = msgrcv(nMsgId,(const void*)&msg,sizeof(msg.szText),2L,0))<0, 接受消息队列,消息类型为2,N 为消息的长度,有错误产生是返回值小于0

msgctl(nMsgId,IPC_STAT,&qds) 读取消息队列属性
msgctl(nMsgId,IPC_SET,&qds) 设置消息队列属性
msgctl(nMsgId,IPC_RMID,NULL) 删除消息队列
qds.msg_perm.mode &=(~0222); 取出些权限

猜你喜欢

转载自ssh-2009-126-com.iteye.com/blog/1716323