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 · 243 阅读 · 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 · 178 阅读 · 0 评论 -
linux 线程较进程的优势
一 线程和进程之间的比较:启动新的进程必须要给他分配独立的空间来维护他的代码段、数据段、bss段等,是一种非常昂贵的方式。而线运行一个进程中的多个线程,他们共享同一片地址,共享大部分数据,启动一个线程所花费的空间远小于启动一个进程所花费的空间。总的来说,一个进程的开发大约是一个线程开发的30倍左右。线程之间有方便的通信机制。对不同进程来说,它们具有独立的数据空间,要进行数据的传递只能通过通信的方式进行,这种方式不仅费时,而且很不方便。由于同一进程下的线程之间共享数据空间,所以一个线程的数原创 2021-02-02 11:16:27 · 164 阅读 · 0 评论 -
进程通信之信号量
进程通信之信号量信号量是一个计数器。用于实现进程间的互斥与同步,而不是用于存储进程间通信数据。特点:1.信号量用于进程间同步,若要在进程间传递数据需要结合共享内存。2.信号量基于操作系统的 PV 操作,程序对信号量的操作都是原子操作。3.每次对信号量的 PV 操作不仅限于对信号量值加 1 或减 1,而且可以加减任意正整数。4.支持信号量组。操作步骤:1.获取信号量集2.初始化信号量的值//有多少把钥匙3.p and v 操作4.粉碎信号量一、获取信号量集函数原型:int semg原创 2021-01-28 22:24:05 · 213 阅读 · 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 · 274 阅读 · 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 · 469 阅读 · 2 评论