![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux环境高级编程
文章平均质量分 76
深入探讨Linux环境下编程接口包括对文件、进程、线程、网络等接口的讲解
青湦
这个作者很懒,什么都没留下…
展开
-
libudev 和 libusb 常见API分析
函数:udev_monitor_filter_add_match_subsystem_devtype(struct udev_monitor *udev_monitor, const char *subsystem, const char *devtype)参数是udev_monitor_new_from_netlink函数返回值。函数:udev_device_get_sysattr_value(struct udev_device *udev_device, const char *sysattr);原创 2023-09-02 15:32:06 · 2170 阅读 · 0 评论 -
x86 汇编指令集
一、汇编标志位:CF: 进位标志 进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。 使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作,字(字节)之间移位,专门改变CF值的指令等。PF: 奇偶标志 奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。 利用PF可进行奇偶校验检查,或产生奇偶校验位。在数据传送过程中,为了提供传送的可靠性,如果采原创 2021-03-25 22:25:11 · 1975 阅读 · 0 评论 -
守护进程
守护进程一:什么是守护进程守护进程是生存期长的一种进程,他们常常在系统引导装入时启动,在系统关闭时终止,他们没有终端,所以他们始终在后台运行。二、守护进程的特性1.大多数守护进程都是root权限。2.因为守护进程没有终端,所以终端名为问号 ‘?’。3.大多数守护守护进程是进程组组长和会话的首进程。4.用户层的守护进程是init进程,init进程是系统守护进程。5.内核守护进程的名字出现在方括号中。我们可以在中端输入命令 ps -aux 查看进程我们可以看到 TTY 终端这一列都是问原创 2021-04-22 23:15:03 · 611 阅读 · 0 评论 -
Ubuntu网络配置方法
Ubuntu网络配置方法本人使用的Ubuntu系统是12.04,虚拟机VM12.0,如配置中有问题,可能是Ubuntu 系统版本不同的差异,但原理都是相同。1.首先我们在Ubuntu系统配置网络前要在虚拟机中设置一下网络。首先设置为桥接模式:虚拟机->硬件->网络适配器->选中已连接、启动时连接、桥接模式**2.**进入Ubuntu系统使用图像界面配置第一步:使用鼠标...原创 2019-04-18 09:04:29 · 12848 阅读 · 0 评论 -
用于线程间的同步与互斥-信号量sem
一、线程首先我们说一下什么是线程。线程是计算机中独立运行的最小单位,在运行时占用很少的系统资源,由于每个线程占用的CPU时间是由系统分配的,因此我们可以把线程看作为系统分配CPU时间的基本单位。在我们用户看来多线程是并发执行的,但是从操作系统的角度来看,对于单核CPU来说各个线程是交替执行的,系统在各个线程之间不停的切换,每个线程只有在系统分配给它的时间内获得cup的控制权,执行线程中的代码。...原创 2019-06-20 19:13:26 · 394 阅读 · 0 评论 -
Linux系统下I/O操作讲解,深入了解实战高级I/O编程
Linux系统下I/O一、I/O简介I/O(输入/输出)是在主存和外部设备(磁盘驱动器、网络、终端)之间复制数据的过程。输入是从外部设备复制到主存,输出是从主存复制到外部设备。在Linux系统中所有的I/O设备都被映射称为文件,所有的输入输出都被当做相应文件的读和写来执行,所以内核提供了系统级的I/O函数接口,使得所有输入输出都以统一且一致的方式来执行。打开文件,返回一个非负整数,叫做描述符每个进程都默认打开三个描述符,标准输入 STDIN_FILENO(描述符0)、标准输出 STDOUT_FI原创 2021-06-22 20:56:09 · 1007 阅读 · 0 评论 -
Linux操作系统下C语言网络编程(全文23475字,包含了Linux系统下所有网络编程的知识点,附程序代码)
一、简介如今网络应用随处可见,web、http、email 等这些都是网络应用程序,他们都有着基于相同的基本编程模型,有着相似的整体逻辑结构,并且还有着相同的编程接口。我们需要了解基本的客户端-服务器编程模型。1.1 客户端-服务器编程模型每个应用程序都是基于客户端-服务器编程模型的,他们由一个服务器进程和多个客户端进程组成,服务器管理某种资源,通过操作这种资源来为客户端提供某种服务。例如ftp服务器管理磁盘文件,为客户端存储和检索。客户端-服务器编程模型中的基本操作是事务,一个客户端-服务器事务原创 2021-06-07 21:28:35 · 1039 阅读 · 1 评论 -
Linux操作系统下信号处理函数
Linux系统下的信号一、信号概念1. 什么是信号信号是软件中断,信号提供了一种异步处理事件的方法,它允许进程和内核中断其他进程。一个信号就是一条消息,它通知进程系统发生了一个某种类型的事件,在Linux系统中支持31中不同类型的信号在我这篇文章中给大家列出了Linux系统支持的31个信号(https://blog.csdn.net/qq_34934140/article/details/116550027)。每种信号都对应不同的系统类型,底层硬件异常是由内核异常处理程序处理的,正常情况下对用户是原创 2021-05-11 22:28:30 · 1813 阅读 · 0 评论 -
Linux 操作系统下常见信号详解
注释:终止+core:表示在进程当前工作目录的core文件中复制了该进程的内存映像,该文件名为core,可以使用core文件检查进程终止时的状态。| SIGINT功能: 终端中断符默认动作: 终止说明: 当用户按中断键(Ctrl+C)时,终端驱动程序产生此信号并发送至前台进程组中的每一个进程,当一个进程在运行时失控,特别是在终端输出大量信息时,常用此信号终止它。| SIGQUIT 功能: 终端退出符默认动作: 终止+core说明: 当用户在终端按退出键(Ctrl+\)时,原创 2021-05-09 00:51:02 · 556 阅读 · 0 评论 -
一文搞定Linux环境下线程编程,这些东西老师也不会教你。(史上最详细的线程攻略)
一、线程的概念1.1 什么是线程线程是一个实体,是CPU调度和分派的基本单元,有时我们也可以称它为轻量级的进程。每个线程都包含有表示执行环境所必须的信息,其中包括标识线程的线程ID、一组寄存器值、栈、调度优先级和策略、信号屏蔽字、error变量以及线程私有数据(下面我们会讨论)。除此之外,我们知道线程还包括所在进程的所以信息,包括可执行程序的代码、程序的全局内存和堆内存、栈以及文件描述符。1.2 多线程的好处在典型的Unix进程可以看做只有一个控制线程,在某一时刻只能做一件事情,当我们有了多线程原创 2021-04-18 23:25:33 · 133 阅读 · 0 评论 -
Linux内存管理 -- smaps讲解
基本介绍/proc/PID/smaps 文件是基于 /proc/PID/maps 的扩展,他展示了一个进程的内存消耗,比同一目录下的maps文件更为详细。值得说明一下的是,每一个VMA(虚拟内存区域,即一个 vm_area_struct 结构指向的内存区域)都有如下的一系列数据:08048000-080bc000 r-xp 00000000 03:02 13130 /bin/bashSize: 1084 kBRss: 892转载 2021-11-03 14:43:25 · 8220 阅读 · 0 评论 -
Linux系统下文件与目录操作讲解
Linux系统下文件与目录操作在Linux系统中有一句话叫做,一切皆文件。上节我们说的I/O操作,对于普通I/O操作,都是打开、读写、关闭。这节我们通过stat结构体来了解文件的一些基本信息和本质特征。1. 获取文件信息 #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> int stat(const char *path, struct stat *buf);原创 2021-06-24 21:47:01 · 148 阅读 · 0 评论 -
Linux操作系统下进程讲解(史上最强总结)
Linux操作系统下进程讲解一、进程的基本概念:1. 什么是进程在传统的操作系统中,程序不可以独立的运行,作为资源分配和独立运行的基本单位都是进程。进程的定义是一个可执行中程序的实例,系统中每一个程序都运行在某个的上下文中。上下文是由程序正确运行所需的状态组成的,这个状态包括存放在内存中的程序的代码和数据,它的栈、通用目的寄存器的的内容、程序计数器、环境变量以及打开文件描述符集合。2.进程的特征2.1 结构特征进程通常是不可以并发执行的,为使程序独立运行,必须配置进程控制块(PCB),由程序段原创 2021-05-26 21:57:42 · 1879 阅读 · 0 评论