Linux系统编程
文章平均质量分 63
AJastin
这个作者很懒,什么都没留下…
展开
-
Linux中shell递归遍历当前目录,并删除指定后缀文件
删除.xxxx后缀的文件,根据自身需求场景修改。原创 2024-09-19 15:10:04 · 121 阅读 · 0 评论 -
Linux下UDP应用编程(单播、广播、组播)
发送方:创建socket套接字,bind绑定INADDR_ANY和端口号(如果不接收多播消息可以不bind),创建struct ip_mreqn,指定多播组IP和本地IP(可选INADDR_ANY),setsockopt将主机添加到多播组,创建sockaddr指定多播组IP和发送端口号,发送多播消息。发送端:创建socket套接字,setsockopt设置改套接字为SO_BROADCAST,bind绑定接收端口(如果不需要接收消息,可以不绑定),创建sockaddr携带广播端口号,发送广播消息。原创 2024-09-03 17:29:13 · 382 阅读 · 0 评论 -
Linux并发网络编程(epoll多路复用)
先启动./server,然后打开另一个终端运行./start.sh 50,50表示启动客户端数量,与server.c中MAX_CLIENTS一致。根据贴图可以发现,客户端发送并没有按1-50的顺序发送,这个跟Linux系统的调度策略有关,应该不难理解。客户端批量启动脚本start.sh,同时启动50个客户端与服务端通信。每个客户端发送20条数据,然后关闭连接。客户端:client.c。服务端:server.c。原创 2024-08-30 15:19:45 · 285 阅读 · 0 评论 -
Linux获取系统参数
【代码】Linux获取系统参数。原创 2024-08-27 11:21:25 · 107 阅读 · 0 评论 -
Linux进程间通信-本地socket(AF_UNIX/AF_LOCAL)
socket协议簇提供了一种供本地机器进程间通信的协议:AF_UNIX/AF_LOCAL。通信双方不需要绑定IP和端口,可以指定一个存在于文件系统中路径实现进程间通信。下面上代码,服务端 unix_server.c。客户端 unix_client.c。原创 2024-08-19 18:21:35 · 405 阅读 · 0 评论 -
Linux进程/线程通信-信号量(POSIX Semaphore)+共享内存
信号量是Linux系统为应用层提供的进程/线程间同步的一种机制。信号量分两种:无名信号量(unnamed semaphore)和有名信号量(named semaphore)。原创 2024-08-16 11:22:43 · 584 阅读 · 0 评论 -
Linux进程间通信之消息队列
Linux提供了两种消息队列机制,POSIX Messages以及System V Message Queues。POSIX Messages打开或创建消息队列:mqd_t mq_open(const char *name, int oflag, mode_t mode, struct mq_attr *attr)参数名说明name消息队列名,任意取。必须从跟目录开始,且只能包含一个‘/’ ,例如:/example;错误:/example/anythingoflag消息队原创 2020-06-13 00:49:42 · 255 阅读 · 1 评论 -
Linux进程间通信之FIFO(命名管道)
创建FIFOFIFO为半双工通信,具有读写端,只能单向传输。一旦创建,读写端就无法更改。管道创建:int mkfifo(const char *pathname, mode_t mode);参数: pathname 全局路径,对所有进程可见(这也是非血缘关系进程间通信的基础);mode 文件权限;返回值:0 成功;-1 失败创建管道的实质就是在内核开辟一个buffer,并且在读端和写端都同时打开的情况下,两端才能通过buffer进行数据交互。由写端往buffer写入数据,读端从buffe原创 2020-06-11 14:17:08 · 121 阅读 · 1 评论