linux编程实践
文章平均质量分 79
Sanjiye
这个作者很懒,什么都没留下…
展开
-
shell并发遍历目录并对文件进行处理
最近有需要对目录进行遍历,并对目录中的文件进行处理,发现网上没有找到比较适合的shell并发遍历的脚本,看来就只能自己写了。。。原创 2022-09-14 20:32:57 · 876 阅读 · 0 评论 -
Linux题型复习
一、常用命令及工具(10分)见课件chap1二、名词解释/简答题(20分)1.根目录下各个目录的详细介绍/bin:二进制程序/boot:启动配置文件/dev:设备文件 包含设备文件 终端设备,usb或连接到系统的任何设备/etc:配置文件/home:用户家目录/lib:系统库文件/media:挂载可移动设备的临时目录/mnt:挂载文件系统/opt:提供一个可供选的应用/p...原创 2019-07-07 11:21:44 · 956 阅读 · 0 评论 -
Linux系统编程复习
第一章:操作系统基本知识1.根目录下各个目录的详细介绍/bin:二进制程序/boot:启动配置文件/dev:设备文件 包含设备文件 终端设备,usb或连接到系统的任何设备/etc:配置文件/home:用户家目录/lib:系统库文件/media:挂载可移动设备的临时目录/mnt:挂载文件系统/opt:提供一个可供选的应用/proc:特殊的动态目录,不同时间下,里面的内容不一样...原创 2019-07-06 23:28:09 · 1255 阅读 · 0 评论 -
Linux信号总结
信号是由用户、系统或者进程发送给目标进程的信息,用来通知目标进程的状态改变或系统异常。发送信号kill#include <sys/types.h>#include <signal.h>int kill(pid_t pid, int sig);该函数可以把sig信号发送给pid指定的目标进程 pid 参数 含义 pid >...原创 2018-08-13 15:26:36 · 322 阅读 · 0 评论 -
Linux生产者消费者模型实现
生产者——消费者模型顾名思义,就是一个或多个线程往仓库生产东西,另外的线程从仓库拿东西,在咱们的线程池中也有所应用。咱们看看维基的解释: 生产者消费者问题(英语:Producer-consumer problem),也称有限缓冲问题(英语:Bounded-buffer problem),是一个多线程同步问题的经典案例。该问题描述了共享固定大小缓冲区的两个线程——即所谓的“生产者”和“消费者...原创 2018-08-13 08:34:37 · 494 阅读 · 0 评论 -
Linux高性能服务器编程springsnail源码解析(c++负载均衡)
在《Linux高性能服务器编程》一书中为了帮助大家将书中的知识融汇到实际项目中,作者特意编写了一个较为完整的负载均衡服务器程序springsnail。里面用到了进程池、有限状态机这些知识点。自己是在网上找到的这个程序的源码,起初接触的时候,总共1400多行代码里面没有一行注释,网上也没有一篇博客去对这个项目进行解析,因此写这篇博客供大家一起分享学习。 咱们从main函数开始,我们要介绍几个c语言...原创 2018-08-02 12:33:17 · 4388 阅读 · 3 评论 -
Linux I/O多路复用select详解及FD_系列宏的源码分析
I/O多路复用的理解先讲一个大家都比较熟悉的例子吧 小时候咱们都喜欢看《亮剑》、《雪豹》这一类的抗日剧,里面八路军在自己的驻地周围都会24小时分布一些暗哨,每当有鬼子要进行扫荡或者清剿的时候暗哨就会赶紧告诉驻地的八路军,有敌人过来了,赶紧抄家伙干仗了。其实这就和咱们要讲的I/O多路复用有异曲同工之处。 在我们接触I/O多路复用以前,在处理一些比较多的连接或者请求的时候大多数人会去使用类似下...原创 2018-08-14 16:27:10 · 2922 阅读 · 0 评论 -
同时处理TCP和UDP请求的回射服务器
server.cpp#include<stdio.h>#include<sys/types.h>#include<sys/socket.h>#include<sys/epoll.h>#include<netinet/in.h>#include<arpa/inet.h>#include<assert.h&g原创 2018-03-15 21:53:26 · 721 阅读 · 0 评论 -
linux两个线程交替打印数字
#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<pthread.h>#define COUNT 10static int i = 1;pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;pthread_c...原创 2017-12-10 19:06:37 · 4176 阅读 · 0 评论 -
互斥锁和条件变量实现读写锁
main函数test.c#include<stdio.h>#include<unistd.h>#include<pthread.h>#include"rwlock.h"my_pthread_rwlock_t rwlock = MY_PTHREAD_RWLOCK_INITIALIZER;#define N 5void* thread_fun(void *arg){ my_pthr原创 2017-11-08 22:54:36 · 838 阅读 · 0 评论 -
信号量和共享内存的配合使用
信号量信号量是一个计数器,常用于处理进程或线程的同步问题,特别是对临界资源访问的同步。 信号量的值大于或等于0时表示可供并发进程使用的资源实体数;小于0时代表正在等待使用临界资源的进程数1、信号集的创建或打开int semget(key_t key, int sems, int sem_flags);key 是由ftok()的到的键值。 nsems指明要创建的信号集包含的信号个数,改参数后面还会提原创 2017-11-07 16:59:19 · 3387 阅读 · 0 评论 -
Linux中互斥锁和条件变量的配合
一段代码引发的思考最近一直都在看Linux_c,在条件变量一节的学习中遇到一些疑惑,先看代码吧#include <stdio.h>#include<unistd.h>#include <pthread.h>pthread_mutex_t mutex;pthread_cond_t cond;void *thread1(void *arg) { pthread_cleanup_pus原创 2017-08-04 11:02:27 · 747 阅读 · 1 评论 -
关于vfork的小知识
介绍vfork和fork一样都可以用来创建一个新进程,与fork相比,它有一些自己独特的用处。下面是他们的一些异同 * vfork 与fork一样都是调用一次,返回两次(一个是父进程调用vfork后的返回值,该返回值为子进程的pid。一个是子进程调用vfork的返回值,该返回值为0) * 使用fork创建一个子进程的时候,子进程只是完整复制子进程的资源。这样得到的子进程独立于父进程,具有原创 2017-07-26 10:04:46 · 938 阅读 · 2 评论 -
Linux中ls -a,-l,-r,-R命令的实现
ls简介ls是我们使用Linux最常用的命令,可以用来打印当前目录或者制定目录的清单,显示出文件的一些信息等。 ls -a可以将目录下的全部文件(包括隐藏文件)显示出来 ls -l 列出长数据串,包括文件的属性和权限等数据 ls -r将排序结果反向输出,例如:原本文件名由小到大,反向则由大到小 ls -R连同子目录一同显示出来,也就所说该目录下所有文件都会显示出来(显示隐藏文件要加-a参数)原创 2017-07-23 21:32:07 · 30548 阅读 · 5 评论 -
Linux中chmod指令的实现
chmod命令可以使用八进制数来指定权限。首先man 2 chmod查看chmod函数原型 为int chmod(const char *pathname,mode_t mode);权限更改成功返回0,失败返回-1.错误代码储存在errno中#include<stdio.h>#include<stdlib.h> //strtol对应头文件#include<sy原创 2017-07-17 20:47:45 · 1564 阅读 · 2 评论 -
dup2重定向后的恢复
这周是留校的第二周,写shell分析参数着实难受,更难受的还在后面,由于自己shell的结构比较奇特,在fork之前已经进行了重定向,导致在excv执行程序之后结果无法打印到屏幕上。好生苦恼,好在万能的Google解决了这个问题,因此为大家分享一下。 咱们先来看个代码吧#include<stdio.h>#include<unistd.h>#include<sys/wait.h>#includ原创 2017-07-30 19:56:14 · 2792 阅读 · 0 评论