Linux
sacoder
这个作者很懒,什么都没留下…
展开
-
Linux创建守护进程
#include #include #include #include int main(int a,char *b[]){pid_t pid;pid = fork();printf("hahah");if(pid<0){ perror(""); _exit(1);}if(pid==0){ printf("this is a child process");原创 2016-11-15 17:59:41 · 227 阅读 · 0 评论 -
Linux--多线程之线程资源回收pthread_cleanup_push和pthread_cleanup_pop
#include "apue.h"/**作用:线程结束后的资源回收1.pthread_cleanup_push与pthread_cleanup_pop要成对使用 否则编译器会瞎报错误 pthread_cleanup_push的执行顺序和声明顺序相反 当相遇取消请求时 清理函数对也生效*/void cleanup(void *ar){ printf(" %s \n",(ch原创 2016-12-03 19:46:21 · 609 阅读 · 0 评论 -
Linux--多线程之线程的取消pthread_cancel
#include "apue.h"/**pthread_cancel(pthread_t tid) 取消tid指定的线程 成功返回0 取消只是发送一个请求 会不正常的终止线程pthread_setcancelstate(int state,int *oldstate) 设置本线程对cancel信号的反应 state有两种值PTHREAD_CANCEL_ENABLE(缺省) 和PTHRE原创 2016-12-03 19:43:29 · 1537 阅读 · 0 评论 -
Linux--多线程之线程连接pthread_join
#include "apue.h"/**1.main函数的线程称为初始线程或主线程,主线程在main函数返回的时候,会导致整个线程结束。可以在主线程中使用pthread_exit函数 退出主线程 如此,进程会等待所有的线程结束时候才终止当一个线程被pthread_join之后 另外一个线程不能再pthread_join它*/struct person{ int age; cha原创 2016-12-03 19:42:04 · 1728 阅读 · 0 评论 -
Linux--多线程之互斥量
#include "apue.h"/**动态分配的互斥量 使用pthread_mutex_init 函数初始化冬天分配的互斥量 在释放内存钱 需要调用pthread_mutex_destroy静态分配的互斥量 可以将其设置为常量:PTHREAD_MUTEX_INITIALIZER*///线程共享资源int i;pthread_mutex_t mutex;void *thre原创 2016-12-03 19:36:10 · 295 阅读 · 0 评论 -
Linux --多线程之读写锁2
#include "apue.h"/**读写锁:和互斥量类似 然读写锁并行性更高 如,对于一个变量的读取是可以多个线程并行的读写锁有三种状态 读模式下的加锁,写模式下的加锁,不加锁。一次只有一个线程可以占有写模式下的读写锁 但是多个线程可以同时读模式下的读写锁读写锁在写加锁状态时,在它被解锁前,试图对这个锁加锁的线程都会阻塞 读写锁在读加锁状态时 所有试图以读模式 对其加锁的线程原创 2016-12-03 19:09:56 · 347 阅读 · 0 评论 -
Linux --多线程之读写锁1
#include "apue.h"/**读写锁:和互斥量类似 然读写锁并行性更高 如,对于一个变量的读取是可以多个线程并行的读写锁有三种状态 读模式下的加锁,写模式下的加锁,不加锁。一次只有一个线程可以占有写模式下的读写锁 但是多个线程可以同时读模式下的读写锁1.读写锁在写加锁状态时,在它被解锁前,试图对这个锁加锁的线程都会阻塞 2.读写锁在读加锁状态时 所有试图以读模式 对其原创 2016-12-03 19:07:35 · 259 阅读 · 0 评论 -
Linux--闹钟信号
#include "apue.h"void fun(int sig){ printf("========fun======\n");}main(int a,char *b[]){ int i=0; alarm(5);//10秒后发闹钟信号 该信号默认处理方式会终止当前的进程 signal(14,fun); // signal(14,SIG_IGN); signal(14原创 2016-12-02 18:07:11 · 907 阅读 · 0 评论 -
Linux--共享内存
#include "apue.h"main(){ int id; //创建共享内存 id=shmget(IPC_PRIVATE,128,0777); if(id<0){ printf("create share memmory fail \n"); }else{ printf("create share memmory succusess id=%d\n",id); s原创 2016-12-02 17:57:13 · 351 阅读 · 0 评论 -
Linux--共享队列2
//发送端#include "apue.h"struct msgbuf{ long type; char voltage[128]; char ID[4];};main(){ int id,key; struct msgbuf sendbuf; //创建key key = ftok("./apue.h",'a'); if(key<0){ perror("fail to原创 2016-12-02 17:53:22 · 466 阅读 · 0 评论 -
Linux--共享队列1
#include "apue.h"struct msgbuf{ long type; char voltage[128]; char ID[4];};main(){ int id; struct msgbuf sendbuf,readbuf; //创建共享队列 id=msgget(IPC_PRIVATE,0777); if(id<0){ printf("fail t原创 2016-12-02 17:51:10 · 406 阅读 · 0 评论 -
Linux--有名管道
#include "apue.h"//在当前目录创建一个管道文件main(){ int ret; //会在当前目录下生成一个特殊的不占空间的文件 在共享的window目录下执行 会没有权限 //umask 命令可以设置生成的文件的权限 ret = mkfifo("./myfifo",0777); if(ret<0) { printf("fail to mkfifo原创 2016-12-02 17:47:31 · 242 阅读 · 0 评论 -
Linux--无名管道
#include "apue.h"//无名管道的读阻塞main(){ int fd[2]; int ret; //初始化管道 ret=pipe(fd); if(ret<0){ printf("fail to create pipe\n"); return -1; } printf("success to create pipe ret=%d fd[0]=%d fd[1]=原创 2016-12-02 17:42:34 · 299 阅读 · 0 评论 -
Linux--多线程之线程的创建和退出
#include "apue.h"/**1.main函数的线程称为初始线程或主线程,主线程在main函数返回的时候,会导致整个线程结束。可以在主线程中使用pthread_exit函数 退出主线程 如此,进程会等待所有的线程结束时候才终止*/struct person{ int age; char name[10];};void *thread_fun(void *person原创 2016-12-03 19:39:06 · 9946 阅读 · 1 评论