- 博客(16)
- 收藏
- 关注
原创 Shell编程
执行方式:添加权限后执行:直接执行:注释: 开头的内容为注释。行基本语法变量1. 定义和使用变量定义变量:直接赋值,无需指定类型。注意事项:等号两边不能有空格,否则会被 Shell 解释为命令和参数。变量名可使用 符号取值,必要时可用 明确变量范围。2. 变量类型普通变量:可被修改或撤销。只读变量:不可修改或撤销。通过命令赋值:将命令的返回值赋给变量。3. 全局变量(环境变量)环境变量是可传递给子进程的变量。定义全局变量:
2024-12-14 16:25:08
941
原创 Liunx网络编程
创建命名监听接受建立关闭数据读写TCP数据读取UDP数据读取通用数据读写 结构体的定义如下: 结构体用于指定消息的数据缓冲区,定义如下:
2024-12-13 20:31:19
268
原创 Liunx下的信号
信号集是一个能表示多个信号的数据类型,sigset_t set,set即一个信号集。//将set集合置空//将所有信号加入set集合//将signo信号加入到set集合//从set集合中移除signo信号//判断信号是否存在除sigismember外,其余操作函数中的set均为传出参数。sigset_t类型的本质是位图。但不应该直接使用位操作,而应该使用上述函数,保证跨系统操作有效。
2024-12-13 17:08:41
677
原创 Liunx的同步与互斥
*互斥:**是指散步在不同任务之间的若干程序片断,当某个任务运行其中一个程序片段时,其它任务就不能运行它们之中的任一程序片段,只能等到该任务运行完这个程序片段后才可以运行。最基本的场景就是:一个公共资源同一时刻只能被一个进程或线程使用,多个进程或线程不能同时使用公共资源。**同步:**是指散步在不同任务之间的若干程序片断,它们的运行必须严格按照规定的某种先后次序来运行,这种先后次序依赖于要完成的特定的任务。最基本的场景就是:两个或两个以上的进程或线程在运行过程中协同步调,按预定的先后次序运行。
2024-12-13 16:03:18
1002
原创 Liunx进程和线程
C 语言代码,通过编译器编译,最终它会成为一个可执行程序,当这个可执行程序运行起来后(没有结束之前),它就成为了一个进程。程序是存放在存储介质上的一个可执行文件,而进程是程序执行的过程。进程的状态是变化的,其包括进程的创建、调度和消亡。程序是静态的,进程是动态的。在 Linux 系统中,操作系统是通过进程去完成一个一个的任务,拥有自己独立的(如:当前需要用到哪些环境变量,程序运行的目录在哪,当前是哪个用户在运行此程序等)和(如:处理器 CPU 占用率、存储器、I/O设备、数据、程序)
2024-12-13 14:54:16
1092
原创 Liunx下的文件IO操作
系统调用是操作系统内核提供给用户程序的一组接口,用于用户程序请求系统服务。系统服务之所以需要通过系统调用来提供给用户空间的根本原因是为了对系统进行保护,因为我们知道 Linux 的运行空间分为内核空间与用户空间,它们各自运行在不同的级别中,逻辑上相互隔离。
2024-12-12 20:05:12
886
原创 进程间通信
进程是一个独立的资源分配单元,不同进程(这里所说的进程通常指的是用户进程)之间的资源是独立的,没有关联,不能在一个进程中直接访问另一个进程的资源。但是,进程不是孤立的,不同的进程需要进行信息的交互和状态的传递等,因此需要进程间通信(IPC)
2024-01-15 15:58:22
887
1
原创 IO多路复用之poll
在指定的时间内,轮询一定数量的文件描述符(该文件描述符存放在一个数组)poll系统调用的返回值的含义与select相同。
2024-01-12 20:19:33
469
1
原创 IO多路复用之epoll
epoll的解释:当文件描述符的内核缓冲区非空的时候,发出可读信号进行通知,当写缓冲区不满的时候,发出可写信号通知的机制。epoll_wait如果监听到事件,则将事件表中的所有就绪事件从内核事件表(由epfd指定)复制到由events指向的数组中。
2024-01-12 20:14:25
436
2
原创 IO多路复用之select
在一段指定的时间内,监听用户感兴趣的文件描述符上的可读,可写和异常事件。fd_set 是一个位图(bitmask)数据结构,通常是一个数组,用于表示一组文件描述符。它通过位操作来表示文件描述符是否处于就绪状态,selcet使用其用于对事件进行管理,但只有可读,可写,异常事件。
2024-01-10 18:18:14
424
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅