- 博客(109)
- 收藏
- 关注
原创 my_cmp
#include <stdio.h>#include <stdlib.h>int my_cmp(char *s1,char *s2){ int i=0; for(i=0;s1[i]!='\0'||s2[i]!='\0';i++){ if(s1[i]-s2[i]!=0){ return s1[i]-s2[i]; } } return 0;}int main(){ char h[10
2021-03-01 16:23:19 207 1
原创 my_strlen
#include <stdio.h>#include <stdlib.h>int my_strlen(char *s){ int i=0; for(i=0;s[i]!='\0';i++); return i;}int main(){ char str2[100]="cvbg"; int x=my_strlen(str2); printf("===%d",x); return 0;}
2021-03-01 16:19:50 133 1
原创 my_cat
#include <stdio.h>#include <stdlib.h>//拼接函数char *my_cat(char *dest,char *s){ int i=0; int j=0; int k=0; for(i=0;dest[i]!='\0';i++); for(j=i,k=0;s[k]!='\0';j++,k++){ dest[j]=s[k]; } dest[j]='\0';
2021-03-01 16:19:00 87
原创 my_cpy
#include <stdio.h>#include <stdlib.h>int my_cmp(char *s1,char *s2){ int i=0; for(i=0;s1[i]!='\0'||s2[i]!='\0';i++){ if(s1[i]-s2[i]!=0){ return s1[i]-s2[i]; } } return 0;}int main(){ char h[10
2021-03-01 16:18:01 297
原创 读写锁
头文件#include <pthread.h>互斥量初始化与销毁int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr);int pthread_mutex_destroy(pthread_mutex_t *mutex);简单的使用可以使用默认的属性初始化互斥量,函数的后一个参数设置为NULL即可。互斥量加锁解锁int pthread_mutex
2021-02-14 16:15:17 118 1
原创 互斥锁
#include<stdio.h>#include<pthread.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<sys/types.h>struct student {int age ;int name;int id;}stu;//定义两个全局变量int i=0;pthread_mutex_t mutex;void..
2021-02-12 20:16:55 91 1
原创 为什么要使用互斥量
#include<stdio.h>#include<pthread.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<sys/types.h>struct student {int age ;int name;int id;}stu;int i=0;void *thread_fun1(){while(1){stu.a..
2021-02-12 16:16:52 157
原创 线程的清理
#include<stdio.h>#include<pthread.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<sys/types.h>void *fisrt_clean(){printf(" fisrt clean\n");return (void *) 0;}void *senced_clean(){printf(.
2021-02-12 15:27:49 169
原创 线程的取消
逻辑分析图#include<stdio.h>#include<pthread.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<sys/types.h>void *fun(){ int setv; setv=pthread_setcancelstate(PTHREAD_CANCEL_DISABLE,NULL); if(set.
2021-02-10 11:34:17 78
原创 线程连接
#include<stdio.h>#include<pthread.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<sys/types.h>void *fun1(){printf("xc1\n");return (void *)1;}void *fun2(){printf("xc2\n");//fenglixcpthre.
2021-02-09 16:10:19 90
原创 不终止进程退出的方式
#include<stdio.h>#include<pthread.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<sys/types.h>void *thread_fun(void *agr){ if(strcmp("1",(char *)agr)==0){ printf("new thraed return \n"); retu..
2021-02-08 22:00:13 143
原创 信号量
信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)所拥有。信号量的值为正的时候,说明它空闲。所测试的线程可以锁定而使用它。若为0,说明它被占用,测试的线程要进入睡眠队列中,等待被唤醒。为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。而信号量就可以提供这样的一种访问机制,让一个临界区同一时间只有一个线程在访问它,也就是说信
2021-01-21 19:50:05 1008
原创 共享内存
-写端//创建或获取一个共享内存,成功返回共享id,失败返回-1;int shmget(key_t key, size_t size, int shmflg);//2。连接共享内存到当前进程的地址空间,成功返回指向共享内存的指针,失败返回-1void *shmat(int shmid, const void *shmaddr, int shmflg);//3.断开与共享内存的连接 ;成功返回0,失败返回-1;int shmat(void *addr);//4.控制共享内存的相关信息,成功返
2021-01-20 11:47:14 66
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人