
Linux
牛奶面包~
一年很短,但倾尽全力也能实现一个小目标
[当你有了一个目标并为之努力的时候,即使磕磕碰碰,你会发现全世界都在帮助你]
展开
-
如何在Linux下创建和使用静态库和动态库?
项目场景1:静态库 静态库 1.介绍: 在程序执行前,静态库就已经加入到目标程序中去。 2.优点: 使得程序执行速度快,运行的时候不用再去找库。 3.缺点: 相反,静态库需要在程序编译的时候就要加进去,显然程序体积会变大。 静态库的创建和使用: 提示:这里以calFun.c和calFun.h还有calMain.c 三个文件作为本文的例子引用。 //** 1.创建.o文件。 2.创建.a文件。 3.使用静态文件 **// //1.创建.o文件 gcc calFun.c -c原创 2021-08-15 22:52:36 · 310 阅读 · 0 评论 -
FTP项目总结
内容简介:利用socket将客户端与服务端进行网络连接,客户端可查看服务端的文件以及文件夹,并且可以下载到本地,也可上传到服务器。 当前缺点: 1、只能get 文件,不能get文件夹. 2、得到的文件大小最多只有1024个字节。 3、暂时这么多 解决方法: 1.…… 2、先lseek 读取文件的长度,再用malloc函数动态申请空间 过程使用到的函数: 1、strstr(char *str1,char *str2); 2、char *cmd = strtok(msg.cmd," “); 3、char *s原创 2021-02-28 22:56:28 · 218 阅读 · 0 评论 -
linux 线程较进程的优势
一 线程和进程之间的比较: 启动新的进程必须要给他分配独立的空间来维护他的代码段、数据段、bss段等,是一种非常昂贵的方式。而线运行一个进程中的多个线程,他们共享同一片地址,共享大部分数据,启动一个线程所花费的空间远小于启动一个进程所花费的空间。总的来说,一个进程的开发大约是一个线程开发的30倍左右。 线程之间有方便的通信机制。对不同进程来说,它们具有独立的数据空间,要进行数据的传递只能通过通信的方式进行,这种方式不仅费时,而且很不方便。 由于同一进程下的线程之间共享数据空间,所以一个线程的数原创 2021-02-02 11:16:27 · 213 阅读 · 0 评论 -
进程通信之信号量
进程通信之信号量 信号量是一个计数器。用于实现进程间的互斥与同步,而不是用于存储进程间通信数据。 特点: 1.信号量用于进程间同步,若要在进程间传递数据需要结合共享内存。 2.信号量基于操作系统的 PV 操作,程序对信号量的操作都是原子操作。 3.每次对信号量的 PV 操作不仅限于对信号量值加 1 或减 1,而且可以加减任意正整数。 4.支持信号量组。 操作步骤: 1.获取信号量集 2.初始化信号量的值//有多少把钥匙 3.p and v 操作 4.粉碎信号量 一、获取信号量集 函数原型: int semg原创 2021-01-28 22:24:05 · 265 阅读 · 0 评论 -
进程间通信之共享内存
共享内存 流程可以概括为五个 1.创建/打开共享内存 2.映射到当前的进程中 3.数据交换(不同进程之间) 4.断开进程和共享内存之间的连接 5.干掉共享内存防止内存一直被占用 一、创建/打开共享内存 Function: shmget(); int shmget(key_t key, size_t size, int flag); key: 标识符的规则 size:共享存储段的字节数 flag:读写的权限 返回值:成功返回共享存储的id,失败返回-1 例: key_t key; shmid =原创 2021-01-27 16:01:31 · 332 阅读 · 1 评论 -
IPC之消息队列
IPC之消息队列 特点: 1.消息队列有特定的格式和优先级 2.写进队列的消息不会随进程的终止而disappear; 3.队列里可实现随机查询信息,也可以按照信息类型查询(msgtpye) 2.必须掌握的四个函数 |创建队列或者进入队列|msgget(key_t key,int flag)//flag是权限例如:0777是可读可写可执行 | |–发送消息|msgsnd(int msgId,char *sendBuf,int size)–| | 接收消息 | msgrcv(int msgId,st原创 2021-01-25 11:56:34 · 529 阅读 · 2 评论