![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
影子尤利金
这个作者很懒,什么都没留下…
展开
-
Linux库之静态库及动态库
Linux库之静态库及动态库原创 2021-08-25 16:12:48 · 223 阅读 · 0 评论 -
交叉编译(树莓派与ubuntu Linux)
交叉编译原创 2021-08-26 13:50:37 · 209 阅读 · 0 评论 -
Linux IPC之socket网络编程
一、之前的单机IPC回顾 管道--------------------->父子间通信 消息队列----------------->内核里经营一系列消息队列 共享内存----------------->内核创建一个共享内存 信号--------------------->A通过B的PID进程标识符给它发消息 信号量------------------->对临界资源,共享内存做PV操作 (特点:依赖于内核,造就功能缺陷,无法多机通信) 网络IPC(原创 2021-08-15 19:27:12 · 281 阅读 · 0 评论 -
Linux 多线程
一、进程与线程 典型的UNIX/Linux进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事 情。有了多个控制线程后,在程序设计师可以把进程设计成在同一时刻做不止一件事,每 个线程各自处理独立的任务。 进程是程序执行时的一个实例,是担当分配系统资源(CPU时间,内存等)的基本单 位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条 线程并行执行不同的任务。线程包含了表示进程内执行环境必须的信息,其中包括进程中 表示线程的线程ID,一组寄存器值,栈,e原创 2021-08-13 23:00:05 · 206 阅读 · 0 评论 -
Linux ipc之信号量的理解
信号量与已经介绍过的IPC结构不同,它不携带信息,作用在于管理。信号量用于实现进程间的互斥与同步,而不是用于存储进程间通信数据。信号量相当于一个钥匙,自己用钥匙开门进去后,其他人没有钥匙则进不去,必须等待自己出来才能取得钥匙进入,房间则是一个临界资源(如打印机等,需要有一个排队的过程)。信号量集:多个信号量P操作:拿钥匙V操作:放回钥匙原型:1.创建或获取一个信号量组:成功返回信号量集ID,失败返回-1 int semget(key_t key,int num_sems,int s原创 2021-08-13 16:32:57 · 173 阅读 · 0 评论 -
Linux 信号(signal)的理解
对Linux来说,信号时软中断,许多重要的程序都需要处理信号。信号为Linux提供了一种处理异步事件的方法。比如:终端用户输入ctrl+c来中断程序,会通过信号机制停止一个程序。信号概述:1.信号的名字和编号 每个信号都有一个名字和编号,这些名字都以"SIG"开头,例如"SIGIO","SIGCHLD"等 等。 信号定义在signal.h头文件中,信号名都定义为正整数。 具体的信号名称可以使用kill -l来查看信号的名字以及序号,信号时从1开始编号的, 不存在0号信号原创 2021-08-13 15:04:57 · 862 阅读 · 0 评论 -
Linux ipc 之共享内存的理解
共享内存。(对比前3种,比较先进,用的多)原理:A进程,B进程都有自己独立的存储空间在内存当中有一块公共的内存,这内存的地址对A来说可以挂的到,A可以把内存的地址拿到,B也可以拿到,A和B面向同一个物理空间。把A里面的指针指向共享内存,即可操作内存里的数据: int* p = 共享内存打印内容printf("%s",p); 或 B写入字符串 strcpy("p","hi");步骤:1.创建或打开共享内存-------shmget2.映射--------------------原创 2021-08-12 21:57:12 · 112 阅读 · 0 评论 -
Linux ipc 之消息队列的理解
消息队列。(前面两种管道通信的方式都是半双工的方式,作用有一些限制,只能一端读一端写,消息队列针对管道来说的话,功能会多一点,它可以互发)消息队列实现的原理:两个进程A,B运行在操作系统中,见下图消息队列是消息的链接表,存放在内核中。一个消息队列由一个标识符(即队列ID)来标识。特点:1.消息队列是面向记录的,其中的消息具有特定的格式以及特定的优先级。2.消息队列独立于发送与接收进程。进程终止时,消息队列及其内容并不会被删除。3.消息队列可以实现消息的随机查询,消息不一定要以先进先出原创 2021-08-12 18:30:08 · 156 阅读 · 0 评论 -
Linux ipc 之有名管道的理解
FIFO,也称为命名管道,它是一种文件类型。(可用 ls-l 查看)。特点1.FIFO可以在无关的进程之间交换数据,与无名管道不同。2.FIFO有路径名与之相关联,它以一种特殊设备文件形式存在于文件系统中。原型 #include <sys/stat.h> // 返回值:成功返回0,出错返回-1 int mkfifo(const char *pathname, mode_t mode);int main(){ if(mkfifo("./file",0600) <原创 2021-08-12 13:21:21 · 96 阅读 · 0 评论 -
socket服务端客户端互通(一)
服务端#include<stdio.h>#include <sys/types.h> /* See NOTES */#include <sys/socket.h>//#include <linux/in.h>#include <arpa/inet.h>#include <netinet/in.h>#include<stdlib.h>#include<string.h>int m原创 2021-02-18 16:44:26 · 108 阅读 · 1 评论 -
socket 客户端简单代码
#include<stdio.h>#include <sys/types.h> /* See NOTES */#include <sys/socket.h>//#include <linux/in.h>#include <arpa/inet.h>#include <netinet/in.h>#include<stdlib.h>#include<string.h>int main(原创 2021-02-18 15:45:34 · 241 阅读 · 0 评论 -
socket 服务端简单代码(二)
#include<stdio.h>#include <sys/types.h> /* See NOTES */#include <sys/socket.h>//#include <linux/in.h>#include <arpa/inet.h>#include <netinet/in.h>#include<stdlib.h>#include<string.h>int main(原创 2021-02-18 13:47:13 · 112 阅读 · 0 评论 -
socket 服务端简单代码(一)
#include<stdio.h>#include <sys/types.h> /* See NOTES */#include <sys/socket.h>//#include <linux/in.h>#include <arpa/inet.h>#include <netinet/in.h>#include<stdlib.h>int main(){ int s_fd;/原创 2021-02-18 12:47:16 · 278 阅读 · 0 评论 -
Linux 共享内存编程
1.// 创建或获取一个共享内存:成功返回共享内存ID,失败返回-1 int shmget(key_t key, size_t size, int flag); 2.// 连接共享内存到当前进程的地址空间:成功返回指向共享内存的指针,失败返回-1 void *shmat(int shm_id, const void *addr, int flag); 3.// 断开与共享内存的连接:成功返回0,失败返回-1 int shmdt(void *addr); 4.// 控制共享原创 2021-02-07 18:01:17 · 393 阅读 · 0 评论 -
Linux 消息队列编程收发数据
#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#include<stdio.h>struct msgbuf { long mtype; char mtext[128]; };int main(){ struct msgbuf readBuf; int msgId = msgget(0原创 2021-02-07 15:34:29 · 113 阅读 · 0 评论 -
Linux进程——exec族函数,system函数,popen函数
exec族函数原创 2021-02-05 13:08:54 · 90 阅读 · 0 评论 -
Linux进程操作简述
# Linux进程操作简述1.进程标识符2.fork函数创建一个进程3.fork创建一个子进程的一般目的4.vfork函数创建进程5.进程推出6.父进程等待子进程退出小结1.进程标识符每个进程都有一个非负整数表示的唯一ID,叫做pidpid = 0;称为进程交换。作用—进程调度pid = 1;init进程。作用—系统初始化编程调用getpid函数获取自身的进程标识符getppid获取父进程的进程标识符#include<stdio.h>#include <sys/types原创 2021-02-04 16:35:09 · 744 阅读 · 0 评论 -
Linux cp 指令代码编写
Linux cp 指令代码编写#include<stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include<stdlib.h>#include<string.h>int main(int argc,char **argv){ int fdScr; int fdDes;原创 2021-02-02 17:36:05 · 278 阅读 · 0 评论 -
LINUX系统编程(文件的操作)
LINUX系统编程(文件的操作)LINUX操作系统为文件的操作提供了一系列的API,如:打开open,读写write/read,光标定位lseek,关闭close。打开/创建文件函数的原型,包含的头文件,返回值原创 2021-02-02 14:59:31 · 287 阅读 · 1 评论