
Linux学习笔记
文章平均质量分 58
Linux
秉麟
努力学习
展开
-
Linux守护进程
setsid()创建一个新的会话。(必须是组员进程才可以创建一个新的会话)5.umask(0)清除掩码,不让掩码修改权限。原因就是创建了一个新的会话,脱离了原会话。组长进程:第一个启动的进程叫组长进程。4.chdir("/")改到根目录底下。一个文件最多保存1024个文件描述符。关闭终端:进程组里全部进程关闭。守护进程 Linux/Unix。1.先fork(),退出父进程。2.setsid()创建新会话。3.fork(),退出父进程。原创 2023-05-30 18:24:40 · 835 阅读 · 0 评论 -
Shell编程
z string 如果字符串为null(一个空串)则结果为真。-e file 如果文件存在则结果为真。= string2 如果两个字符串不同则结果为真。$$ shell脚本的进程号,脚本程序通常会用它来生成一个唯一的临时文件。c/c++编译型 xx.c->xx 二进制机器指令。-f file 如果文件是一个普通文件则结果为真。-d file 如果文件是一个目录则结果为真。"$a"就是打印出a的值 '$a'就是打印出$a。原创 2023-05-19 22:46:44 · 774 阅读 · 0 评论 -
Mysql的事物
所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如 :银行转账的问题,从一个账号扣款并使另一个账号入账,这两个操作要么都执行,要么都不执行。开启事务后执行修改命令,变更会维护到本地缓存中,而不维护到物理表中。查看表的引擎类型,必须是innodb类型才可以使用事务。或 start transaction;REPEATABLE READ 可重复读。1.什么是事物,为什么需要事物。2.事物四大特性(ACID)原子性(atomicity)隔离性(isolation)原创 2023-05-19 14:10:48 · 699 阅读 · 0 评论 -
mysql数据库
1.数据库概念。原创 2023-05-12 14:32:49 · 655 阅读 · 0 评论 -
I/O复用函数,poll和epoll的用法与select、poll、epoll的区别
对于ET模式操作的文件描述符,当epoll_wait检测到其上有事件,并将此事件通知应用程序后,应用程序必须立即处理该事件,因为后续的epoll_wait调用将不再向应用程序通知这一事件。对于LT模式操作的文件描述符,当epoll_wait检测到其上有事物发生并将此事通知应用程序后,应用程序可以不立即处理该事物。epoll对文件描述符有两种操作模式:LT模式和ET模式。当epoll内核事件表中注册一个文件描述符上的EPOLLET事件时,epoll将以高效的ET模式来操作该文件描述符。入文件描述符或事件集。原创 2023-04-23 19:51:57 · 711 阅读 · 0 评论 -
Linux I/O复用函数的使用情况和select接口的介绍
select系统调用的用途是:再一段指定时间内,监听用户感兴趣的文件描述符的可读、可写和异常事件。需要指出的是, I/O 复用虽然能同时监听多个文件描述符,但它本身是阻塞的。I/O 复用使得程序能同时监听多个文件描述符,这对于提高程序的性能至关重要。多个文件描述符同时就绪时,如果不采取额外的措施,程序就只能按顺序依处理其中的每一。个文件描述符,这使得服务器看起来好像是串行工作的。将数组中的套接字描述符设置到fd_set变量中,并返回当前最大文件描述符。1.TCP服务器同时要处理监听套接字和连接套接字。原创 2023-04-21 13:50:53 · 366 阅读 · 1 评论 -
HTTP超文本传输协议
浏览器与 web 服务器在应用层通信使用的是 HTTP 协议(超文本传输协议),而 HTTP协议在传输层使用的是 TCP 协议。那么浏览器需要和 web 服务器三次握手建立连接后,才可以发送 HTTP 请求报文,服务器收到请求报文后,向浏览器回复 HTTP 应答报文。这种方法会影响服务器:服务器可能根据收到的数据动态创建新的资源,也可能更新原有的资源。浏览器向服务器发起连接前,需要得到服务器的 IP 及端口。浏览器服务器建立连接后,如果两次以上的请求复用同一个 TCP 连接,则称之为长连。原创 2023-04-19 14:21:38 · 447 阅读 · 0 评论 -
TCP协议与UDP协议
tcp协议是面向连接的,客户端和服务器是连接的,所以不同的send()发送的数据在同一个发送缓冲区中,即发送方发送的若干包数据到接收方接收时粘成一包,从接受缓冲区来看后一包的数据紧接着前一包数据的尾。TCP字节流的特点,发送端执行的写操作次数和接收端的读操作次数之间没有任何数量关系,应用程序对数据的发送和接收是没有边界限制的。口的大小是由接收端填充的接收通告窗口的大小决定的,并且窗口的位置会随着发送端数剧的发送和接收到接收端对数据的确认而不断的向右滑动,将之称为滑动窗口。原创 2023-04-17 19:32:51 · 861 阅读 · 0 评论 -
socket网络编程
sendto()用来发送数据,由于udp时无连接的,每次发送数据都需要指定对端的地址(IP和端口)。此时其他客户端向服务器发起连接后,由于服务器阻塞了,无法执行accept()接受连接,也就是其他客户端发生的数据,服务器无法读取,服务器也就无法并发同时处理多个客户端。主线程(父进程)只负责监听客服端的连接,并使用accept()接受连接,不进行数据的处理。监听队列有两种,一个是存放未完成三次握手的连接,一种是存放已完成三次握手的连接。每处理一个连接,则accept()返回该连接对应的套接字描述符。原创 2023-04-13 20:02:19 · 954 阅读 · 0 评论 -
计算机网络基础
广域网或者说互联网通常使用众多分级的路由器来连接分散的主机或者局域网,因此,通信的两台主机一般不是直接相连的,而是通过多个中间结点(路由器)连接的。TCP/IP协议体系结构中,数据链路层的功能描述为实现网卡接口的网络驱动程序,以处理数据在物理媒介上的传输,不同的物理网络具有不同的电气特性,网络驱动程序隐藏了这些细节,为上层协议提供了一个统一的接口。因此,这一层的主要功能是在物理层提供的比特流的基础上,通过差错控制,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。原创 2023-04-07 14:26:51 · 901 阅读 · 0 评论 -
Linux线程同步(互斥锁、信号量、条件变量、读写锁),读写锁
示例代码如下:一读一写。用信号量实现线程同步。原创 2023-04-04 22:06:22 · 115 阅读 · 0 评论 -
Linux线程的创建与同步
每个线程都拥有唯一隶属于自己的 task_struct,所以在内核中,它看起来就像是一个普通的进程(只是线程和其他一些进程共享某些资源,如地址空间)。线程同步指的是当一个线程在对某个临界资源进行操作时,其他线程都不可以对这个资源进行操作,直到该线程完成操作,其他线程才能操作,也就是协同步调,让线程按预定的先后次序进行运行。线程是进程内部的一条执行序列或执行路径,一个进程可以包含多个线程。1.进程是资源分配的最小单位,线程是CPU调度的最小单位。2.进程有自己独立的地址空间,线程共享进程中的地址空间。原创 2023-03-29 14:47:40 · 397 阅读 · 0 评论 -
Linux 消息队列
示例代码:进程a发送一条消息,进程b读取消息。原创 2023-03-24 23:12:43 · 189 阅读 · 0 评论 -
Linux共享内存
共享内存为多个进程之间共享和传递数据提供了一种有效的方式。共享内存是先在物理内存上申请一块空间,多个进程可以将其映射到自己的虚拟地址空间中。所有进程都可以访问共享内存中的地址,就好像它们是由malloc分配的一样。如果某个进程向共享内存写入了数据,所做的改动将立刻被可以访问同一段共享内存的任何进程看到。由于它并未提供同步机制,所以我们通常需要用其他的机制来同步对共享内存的访问。例题:进程a向共享内存中写入数据,进程b从共享内存中读取数据并显示。原创 2023-03-22 15:25:16 · 228 阅读 · 1 评论 -
Linux信号量
一般情况下,它们都会呗sys/sem.h自动包含,因此不需要为它们明确添加相应的# include语句。例题:进程 a 和进程 b 模拟访问打印机,进程 a 输出第一个字符‘ a’表示开始使用打印。机,输出第二个字符‘ a’表示结束使用, b 进程操作与 a 进程相同。时,需要对信号量的值进行原子减一,该操作被称为 P 操作。释放资源时,需要对信号量的值进行原子加一,该操作被称为 V。信号量的值如果只取 0,1,将其称为二值信号量。临界资源:同一时刻,只允许被一个进程或线程访问的资源。原创 2023-03-19 14:42:55 · 509 阅读 · 0 评论 -
Linux管道
管道原创 2023-03-18 12:51:10 · 407 阅读 · 0 评论 -
Linux系统的介绍
用户 主机名 当前目录 $代表普通用户#代表管理员。原创 2023-03-16 19:02:36 · 252 阅读 · 0 评论