Linux
文章平均质量分 89
记录Linux点点滴滴~
Arthur___Cui
思维、交流、认真
展开
-
Linux之套接字UDP实现网络通信
在服务器端的使用中,我们采用智能指针unique_ptr来帮助资源创建以及销毁,在使用中,我们调用以上server.hpp中类的初始化与启动函数即可.它提供了应用程序与网络通信之间的一座桥梁,因为它允许应用程序通过网络发送和接收相应的数据以实现不同主机之间的通信。我们通过实现客户端和服务器端,实现了通过套接字UDP创建了一个服务器,之后通过客户端链接并且通信的一个功能。 在服务器的头文件中,我们首先需要定义一个udpserver的类,服务器类中需要有服务器的。常见的有TCP和UDP等协议。原创 2023-08-20 22:06:41 · 880 阅读 · 7 评论 -
Linux下设计简易线程池
线程池是一种池化技术,是消费者生产者模型的具体体现。它能够预先创建一批能够被重复使用的线程,而无需创建任何额外的空间。因为减少了线程的创建和开销,所以提高了系统的性能和资源的利用率。运行5个线程完成加减乘除的任务可以看到,我们运行起来后会有包括主线程在内的6个线程运行起来。在任务方面,我们可以实现每个线程都完成一个任务并返回结果的现象。那么事不宜迟,我们赶快来了解怎么实现一个简易线程池吧!原创 2023-08-15 17:51:09 · 287 阅读 · 8 评论 -
Linux进程信号
信号众所周知就是一种通知的行为,当信号通知到本人的时候,我们会知道具体要做什么。原创 2023-08-07 21:35:11 · 118 阅读 · 9 评论 -
Linux下匿名管道简单模拟进程间通信
(如:父子进程)的进程间通信的一种管道。为了控制读写端,我们父进程关闭写端,子进程关闭读端,然后由父进程通过read接收到write写入的值输出即可。知道了基本知识再结合我们之前的所学习的文件描述符fd的相关知识我们就可以来尝试着简单模拟一下进程间通信了!通过fork()函数创建完子进程后,我们期望子进程写入,所以在子进程中关闭读端pipefd[0]。 由于匿名管道只能在具有血缘关系的进程间通信的一种措施,所以我们打算:父子进程来模拟,实现完后查看PPID确实是计数器在++,并且父子进程都是匹配的.原创 2023-08-04 17:47:07 · 133 阅读 · 2 评论 -
Linux之命名管道简单模拟进程间通信
命名管道(Named Pipe)是一种在任意进程之间进行通信的方式,由于可以通过名称进行识别,所以称为命名管道。原创 2023-08-04 20:10:29 · 204 阅读 · 4 评论 -
Linux文件描述符fd的理解
最后总结几点规则把最小未使用的fd下标给用户使用。系统默认占用的关闭后也可占用 2.**close()是系统调用接口,fclose()是C库函数。 3.printf/cout 默认往标准输出1号文件描述符去打印的,cerr/perror同理,默认往标准错误2号文件描述符去打印的 4.重定向的原理是:更改文件描述符fd,从而更改打印方向等。 5.文件描述符fd本质是文件结构体数组下标。 6.任何文件的前三号文件描述符0、1、2都是先默认被系统占用的。原创 2023-08-01 13:34:10 · 1002 阅读 · 0 评论 -
Linux系统下gcc使用以及原理详解
首先,一段程序电脑会进行预处理、编译、汇编、链接的翻译:由于Linux系统默认自带语言级别的头文件和库,经过此“四大才子”之手程序才会最终呈现出我们想要的方式。 编译、汇编、过程等过程中的命令选项组合起来是-E -S -c,活像键盘左上角的Esc退出键,只不过其中S是大写而已,因此可以看键盘左上角Esc来记忆命令选项。 一个可执行的.c文件只有经过上述的四步之后才会生成用户想要的文件,在Windows下大部分市面上的编译器都会替用户直接生成编译结果,而Linux下提供了。原创 2023-02-25 15:28:14 · 773 阅读 · 3 评论 -
Linux保姆级介绍系统接口fork()函数
fork()函数是一个创建新进程(子进程)的一个系统接口。头文件由两个系统接口头文件sys/types.h和unistd.h所支持。注意:返回值类型为pid_t,用来标识和描述进程ID,本质是无符号整型unsigned int。原创 2023-05-05 17:16:58 · 442 阅读 · 3 评论