
Linux
Linux学习
hansy2015
这个作者很懒,什么都没留下…
展开
-
socket实现客户端与服务器通信(tcp通信)
1.网络套接字函数int socket(int domain, int type, int protocol) 创建套接字 domain ipv4 af_inet type tcp-流式协议 udp-报式协议 protocol 0 返回值:文件描述符 int bind(int sockfd, const s...原创 2020-03-11 23:35:10 · 5973 阅读 · 1 评论 -
用条件变量实现生产者-消费者模型
首先介绍一下条件变量下面用条件变量来实现生产者-消费者模型大体思路如下:生产者为链表“生产”结点,消费者“消费”结点,如果链表中没有结点,则阻塞消费者线程#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <sys/types.h>#...原创 2020-03-08 21:52:52 · 1347 阅读 · 1 评论 -
互斥锁和读写锁
互斥锁的类型 pthread_mutex_t mutex 互斥锁的特点 多个线程访问资源的时候是串行的 互斥锁的使用步骤 创建一个互斥锁:pthread_mutex_t mutex 初始化这把锁:pthread_mutex_init(&mutex, NULL); 寻找共享资源: 操作共享代码之前加锁 操作完之后解锁 互斥锁的相关函数 初始化...原创 2020-03-07 15:07:48 · 217 阅读 · 0 评论 -
堆和栈的区别
1.首先从数据结构的角度说明一下堆栈的区别:栈:是一种后进先出的数据结构,是一端受限的线性表 堆:(1)堆是一棵完全二叉树。(2)这棵完全二叉树中的每一个结点的值都不大于(或不小于)其父结点的的值。2.C语言中内存分配中的堆和栈。下面是一个进程的虚拟地址空间的内存分布图可以看出内存中的栈地址是向下增长的,而堆是向上增长的。其中,栈是为分配局部变量分配内存空间,堆用于分配程序...原创 2020-03-03 13:22:23 · 301 阅读 · 0 评论 -
Linux基本命令
linux的目录结构就是树结构:顶级目录是根目录/bin目录:binary,存放一些二进制文件,即shell命令/dev目录:device,linux下面一切皆文件,硬盘,显卡,显示器都被抽象为文件/lib目录:动态库/mnt:手动挂载目录/media:外设自动挂载目录/root:linux超级用户的家目录/usr:unix的资源目录/etc:配置文件的目录/o...原创 2020-03-01 16:24:55 · 269 阅读 · 0 评论