
Linux入门学习
文章平均质量分 81
记录自己学习笔记,主要是linux平台应用开发笔记
_索伦
结束,还是开始?
展开
-
网络编程:select的用法和原理
1)在socket内核中,接收缓冲区中的字节数大于或等于低水位标记SO_RCVLOWAT,此时调用recv或read函数可以无阻塞地读取内核文件描述符,并且返回值大于0。1) nfds:Linux上的socket也叫fd,将这个参数的值设置未所有需要使用socket函数检测事件的fd中的最大值加1.5) timeout:超时时间,即在这个参数设定的事件内检测这些fd的事件,超过这个时间后,select函数将立即返回。3) writefds:需要监听的可写事件的fd集合。原创 2022-09-12 22:36:32 · 1708 阅读 · 1 评论 -
网络编程:发送0字节数据的效果
网络编程:发送0字节数据的效果。原创 2022-08-29 22:40:15 · 872 阅读 · 1 评论 -
网络编程:socket的阻塞模式和非阻塞模式
返回值n返回值含义大于0成功发送(send)或接收(recv)n字节0对端关闭连接小于0(-1)出错、信号被中断、对端TCP窗口太小导致数据发送不出去或当前网卡缓冲区已无数据可接收返回值大于0。在这种情形下,一定要判断send函数的返回值是不是我们期望发送的字节数,而不是简单的判断其返回值大于0.\n");}虽然返回值n大于0,但在实际情况下,由于对端的TCP可能因为缺少一部分字节就满了,所以n的值可能为(0, buf_length]。...原创 2022-08-28 20:17:52 · 11715 阅读 · 1 评论 -
Linux内核:fork的学习——笔记自用
工具:source insightLinux源码版本:2.6.11(最新版已经5.几了,根据自己需求选择)原创 2022-08-14 19:03:03 · 261 阅读 · 0 评论 -
Linux线程同步对象:互斥体、信号量、条件变量、读写锁
因为某次操作系统唤醒pthread_cond_wait()时tasks.empty()可能仍为true,即操作系统可能在某些情况下唤醒条件变量,也就是说存在没有其他线程向条件变量发送信号,但等待此条件变量的线程有可能醒来的情形。信号量代表一定的资源数量,可以根据当前资源的数量按需唤醒指定数量的资源消费者线程,资源消费者线程一旦获取信号量,就会让资源减少指定的数量,如果减少为0,则消费者线程将全部处于挂起状态;broadcast唤醒所有调用pthread_cond_wait()等待的线程,相当于广播。....原创 2022-08-10 23:09:12 · 470 阅读 · 0 评论 -
典型的一次IO的两个阶段是什么?阻塞、非阻塞、同步、异步
而异步,是把sockfd,buf和一个信号或回调的通知方式告知内核,内核将数据拷贝到buf,这个过程应用程序不参与,可以去做其他事情,拷贝完成后,内核根据这个通知方式告知应用程序,这个操作就是异步。如果数据就绪,开始进行读写,应用程序这边的recv会花自己的时间,从内核缓冲区中读数据,拷贝到recv的buf里,这个过程应用程序是一直等待拷贝完成的,完不成就一直阻塞在那个位置,所以是同步操作。A操作告诉B操作它感兴趣的事件以及通知方式,A操作继续执行自己的业务逻辑了;典型的一次IO的两个阶段是什么?.....原创 2022-08-01 17:21:21 · 595 阅读 · 0 评论 -
操作系统——段页式内存管理、Linux内存管理
紧跟着上一篇文章,讲完段式和页式内存管理后,本文来说明段页式内存管理和Linux下内存管理。上篇文章:【点此查看】内存分段和内存分页并不是对立的,它们是可以组合起来在同一个系统中使用的,那么组合起来后,通常称为段页式内存管理。段页式内存管理实现的方式:用于段页式地址变换的数据结构是每一个程序一张段表,每个段又建立一张页表,段表中的地址是页表的起始地址,而页表中的地址则为某页的物理页号,如图所示:段页式地址变换中要得到物理地址须经过三次内存访问:可用软、硬件相结合的方法实现段页式地址变换,这样虽然增加了硬件原创 2022-05-13 10:16:57 · 566 阅读 · 0 评论 -
操作系统:内存管理篇—— 虚拟内存、段式内存管理、页式内存管理
一、物理和虚拟地址二、如何管理虚拟地址和物理地址?1. 内存分段 1.1 分段机制下虚拟地址和物理地址如何映射? 1.2分段产生内存碎片问题 1.3 分段为什么会导致内存交换效率低2.内存分页 2.1分页怎么解决分段的内存碎片、内存交换效率低的问题 2.2 分页机制下虚拟地址和物理地址如何映射 2.3 空间上的缺陷 2.4 多级页表 2.5 TLB...原创 2022-05-12 21:37:23 · 1440 阅读 · 0 评论 -
Linux :UDP协议特点(简述)
简介:UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个 UDP数据报,并组装成一份待发送的 IP数据报。UDP首部:UDP检验和UDP检验和覆盖UDP首部和UDP数据。UDP和TCP在首部中都有覆盖它们首部和数据的检验和。 UDP的检验和是可选的,而TCP的检验和是必需的。UDP数据报和TCP段都包含一个 12字节长的伪首部,它是为了计算检验和而设置的。伪首部包含 I P首部一些字段。其目的是让 UDP两次检查数据是否已经正确到达目的地。UDP 数据报服务特点:原创 2022-03-02 14:47:14 · 1906 阅读 · 2 评论 -
Linux:TCP协议的特点
TCP协议的特点原创 2022-03-02 14:36:32 · 1951 阅读 · 0 评论 -
Linux:UDP编程流程
目录UDP数据读写UDP编程流程流程UDP服务端代码UDP客户端代码UDP数据读写#include<sys/types.h>#include<sys/socket.h>ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen);ssize_t sendto(int sockfd,原创 2022-02-21 21:40:38 · 543 阅读 · 1 评论 -
Linux:TCP编程流程
目录1.TCP数据读写2.TCP编程流程TCP服务端示例TCP客户端示例运行示例1.TCP数据读写#include<sys/types.h>#include<sys/socket.h>ssize_t recv(int sockfd, void *buf, size_t len, int flags);ssize_t send(int sockfd, const void *buf, size_t len, int flags);recv()读取 sockfd 上的原创 2022-02-20 22:46:08 · 385 阅读 · 0 评论 -
Linux : socket网络编程1——接口
目录1.主机字节序列和网络字节序列2. 套接字地址结构2.1 通用socket地址结构2.2专用socket地址结构2.3 IP地址转换函数3.网络编程接口3.1创建socket3.2 命名socket(bind)3.3 监听socket(listen)3.4 接受连接(accept)3.5 发起连接(connect)3.6 关闭连接(close)1.主机字节序列和网络字节序列主机字节序列分为大端字节序和小端字节序,不同的主机采用的字节序列可能不同。大端字节序是指一个整数的高位字节存储在内存的低地址原创 2022-02-19 22:45:30 · 647 阅读 · 0 评论 -
计算机网络基础概论——网络分层模型
网络分层TCP/IP的分层1.数据链路层2.网络层3.传输层4.应用层OSI七层模型 与 TCP/IP协议族体系四层结构TCP/IP的分层1.数据链路层数据链路层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,这一层的主要功能是在物理层提供的比特流的基础上,通过差错控制,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。该层通常又被分为介质访问控制(MAC原创 2022-02-17 22:27:35 · 1865 阅读 · 0 评论 -
计算机网络基础概论——网络基本概念
网络的基本概念1原创 2022-02-17 17:47:13 · 1836 阅读 · 0 评论 -
Linux :线程同步
目录线程同步的概念线程同步的方法1.互斥锁基础API线程同步的概念线程同步指的是当一个线程在对某个临界资源进行操作时,其他线程都不可以对这个资源进行操作,直到该线程完成操作,其他线程才能操作,也就是协同步调,让线程按预定的先后次序进行运行。线程同步的方法线程同步的方法有四种:互斥锁、信号量、条件变量、读写锁。原创 2022-01-27 18:57:32 · 1453 阅读 · 0 评论 -
Linux : 线程的概念、线程的使用
进程:一个正在运行的程序。线程:进程内部的一条执行路径…1.线程的概念与实现方式线程的概念线程的实现方式Linux中线程的实现不同实现方式的特点进程与线程的区别线程的使用线程库的接口介绍1.创建线程2.退出线程原创 2022-01-20 21:22:11 · 1231 阅读 · 3 评论 -
Linux:进程的替换
目录exec系列原型进程替换过程fork和exec创建新进程exec系列包含在头文件:unistd.h 中。有库文件和系统调用两种。库文件类的包括:execl execlp execle execv execvp系统调用的有:execve原型NAME execl, execlp, execle, execv, execvp, execvpe - execute a fileSYNOPSIS #include <unistd.h>原创 2021-12-22 22:34:07 · 1280 阅读 · 0 评论 -
Linux:操作文件的系统调用
操作文件的系统调用、与fork() 相关问题、实现简单的文件复制、系统调用与库函数的区别原创 2021-12-06 20:26:31 · 864 阅读 · 0 评论 -
Linux : 进程的复制 (fork)
fork()复制进程原创 2021-11-21 13:45:52 · 1315 阅读 · 0 评论 -
Linux:计算机基础概论
计算机的组成、进程问题、并发与并行原创 2021-11-19 15:32:19 · 1833 阅读 · 2 评论 -
Linux环境下:printf输出问题(缓冲区刷新)
Linux环境下:printf输出问题(缓冲区刷新)原创 2021-11-12 19:58:19 · 5216 阅读 · 2 评论 -
Linux:库文件的生成与使用
库文件基础原创 2021-11-08 20:41:38 · 733 阅读 · 0 评论 -
Linux : makefile 和 make基础
makefile 简单示例,人人能看懂原创 2021-11-08 16:58:39 · 874 阅读 · 0 评论 -
Linux : gdb调试
Linux 中的 gdb基础命令 与 调试示例原创 2021-11-08 13:07:47 · 228 阅读 · 0 评论 -
Linux: gcc分步编译链接过程详解
编译链接过程原创 2021-11-02 00:01:50 · 1295 阅读 · 1 评论 -
Linux: 常用命令2
基础命令原创 2021-11-01 16:10:58 · 136 阅读 · 1 评论 -
Linux:Linux常用命令1
命令格式命令格式:命令 【-选项】 【参数】示例: ls -l /bin目录命令格式显示当前绝对路径:pwd目录处理命令:ls目录处理命令:mkdir目录处理命令:cd文件处理命令:rmdir目录处理命令:cp目录处理命令:mv目录处理命令:rm文件处理命令:touch文件处理命令:cat显示当前绝对路径:pwd示例:目录处理命令:ls命令名称:ls执行权限:所有用户功能描述:显示目录文件语法:ls 【-选项】 【文件或目录】选项-a详细信息显示示例:只使用ls显示原创 2021-10-18 22:31:33 · 166 阅读 · 1 评论 -
Linux:Linux系统文件类型与文件权限
目录1.文件类型2.文件权限3.修改文件权限 chmod文字设定法数字设定法1.文件类型Linux将所有的东西都看作文件,文件类型分为以下几种普通文件—— ’ - ’目录文件—— ’ d ’管道文件—— ’ p ’链接文件—— ’ l ’设备文件—— ’ c ’套接字文件—— ’ s ’文件信息示例:2.文件权限r —— 读权限——值:4w —— 写权限 ——值:2x ——执行权限 ——值:1‘-’ ——无权限——值:0u: 文件属主的访问权限g: 文件同组用原创 2021-10-18 11:09:44 · 239 阅读 · 0 评论 -
Linux:Linux系统和系统目录介绍
666原创 2021-10-15 19:22:19 · 374 阅读 · 0 评论