
APUE
文章平均质量分 94
努力学代码的小信
正在学习编程过程中,利用博客来归纳整理自己所学知识,目前参考教材主要是《鸟哥的Linux私房菜》、《APUE-UNIX环境高级编程》,希望大家一起努力,如果哪里有错误也希望大家能够指出。
展开
-
Makefile学习
Makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,Makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。原创 2024-03-04 10:07:02 · 981 阅读 · 0 评论 -
静态库和动态库
叫我们一起来看看动态库和静态库的知识吧!原创 2024-03-01 16:18:07 · 1399 阅读 · 0 评论 -
C程序的编译过程
详解一个C语言从源程序到可执行的四个步骤-----预处理、编译、汇编、链接。原创 2024-02-29 18:46:10 · 1366 阅读 · 0 评论 -
APUE学习之进程间通信(IPC)(下篇)
本篇文章详细讲解进程间通信的四种常见方法:信号量、共享内存、消息队列原创 2024-01-30 16:00:33 · 917 阅读 · 1 评论 -
APUE学习之进程间通信(IPC)(上篇)
本篇文章详细讲解进程间通信(IPC)的几种常见方式:信号、管道、命名管道、命名socket。原创 2024-01-29 16:30:22 · 1011 阅读 · 0 评论 -
APUE学习之管道(pipe)与命名管道(fifo)
本篇文章主要讲解Linux环境编程中管道(Pipe)和命名管道(FIFO)。原创 2024-01-26 21:39:56 · 1156 阅读 · 0 评论 -
APUE学习之信号(Signal)
对于目前Linux的两个信号安装函数:signal()及sigaction()来说,它们都不能把SIGRTMIN以前的信号变成可靠信号(都不支持排队,仍有可能丢失,仍然是不可靠信号),而且对SIGRTMIN以后的信号都支持排队。父进程一旦调用wait函数就立即开始阻塞,然后wait会分析当前进程的某个子进程是否已经退出,如果让它找到了这样一个退出的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回,如果没有找到,就一直阻塞,直至找到一个结束的子进程或接收到了一个指定的信号为止。原创 2024-01-24 21:38:10 · 1019 阅读 · 0 评论 -
Linux下用树莓派DS18B20温度传感器读取温度并上传至服务端
题目要求:(1)利用网络socket编程,编写一个服务端和一个客户端,实现通信;(2)使用树莓派DS18B20温度传感器每10秒采集一次温度,并上传至服务端。原创 2024-01-22 19:31:01 · 1888 阅读 · 1 评论 -
APUE学习之I/O多路复用
本篇文章详细讲解了IO多路复用select、poll和epoll原创 2024-01-21 12:44:15 · 1013 阅读 · 0 评论 -
APUE学习之守护进程
守护进程(Daemon Process),也就是通常说的 Daemon 进程(精灵进程),是Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。当Linux系统启动的时候,会启动很多系统服务,这些进程服务是没有终端的也就是说你把终端关闭了这些系统服务是不会停止的,这就是守护进程。Linux大多数服务器就是用守护进程实现的。比如,Internet 服务器 inetd,Web 服务器 httpd 等。原创 2024-01-18 21:20:18 · 1088 阅读 · 1 评论 -
APUE学习之进程资源限制
如果对多进程编程不熟悉的同学,推荐先看看这篇文章。通过多进程编程的学习,我们可以使用多进程来实现多个客户端的并发,那是不是一个服务器可以给无限多个客户端提供服务呢?让我们一起带着这个疑问往下学习吧!原创 2024-01-18 13:27:38 · 967 阅读 · 1 评论 -
APUE学习之多线程编程
线程函数执行完毕退出,或以其他非常方式终止,线程进入终止态,但是为线程分配的系统资源不一定释放,终止态的线程,仍旧作为一个线程实体存在于操作系统中,什么时候销毁,取决于线程属性。一个进程创建后,会首先生成一个缺省的线程,通常称这个线程为主线程,C/C++程序中,主线程就是通过main函数进入的线程,由主线程调用pthread_create()创建的线程称为子线程,子线程也可以有自己的入口函数,该函数由用户在创建的时候指定。(在 POSIX 线程中)等函数等待可合并的线程的结束,并获取其终止状态。原创 2023-12-07 17:38:02 · 1228 阅读 · 1 评论 -
Linux学习之内存空间布局
Linux进程内存管理的对象都是虚拟内存,每个进程先天都有0-4G的各自互不干涉的虚拟内存空间,0-3G是用户空间执行用户自己的代码,高1GB的空间是内核空间执行Linux系统调用,这里存放着整个内核的代码和所有的内核模块,用户所看到和接触的都是该虚拟地址,并不是实际的物理内存地址。Linux下一个进程在内存里有三部分的数据,就是“代码段”、“堆栈段”和“数据段”。代码段就是存放了程序代码的数据,假如机器中有数个进程运行相同的一个程序,那么它们就可以使用相同的代码段。堆栈段存放的就是子程序的返回地址、子程序原创 2023-11-25 22:18:12 · 1145 阅读 · 0 评论 -
APUE学习之多进程编程
服务器按处理方式可以分为迭代服务器和并发服务器两类。服务器每次只能处理一个客户的请求,它实现简单但效率很低,这种服务器通常称为迭代服务器。然而在实际应用中,不可能让一个服务器长时间为一个客户服务,而需要其具有同时处理多个客户请求的能力,这种同时可以处理多个客户请求的服务器称为并发服务器,其效率很高却实现复杂。在实际应用中,并发服务器应用的最广泛。多进程并发服务器、多线程并发服务器、IO复用。本篇文章,小编将带大家一起看看多进程并发服务器是如何实现的!如果大家对于网络编程socket不是很熟悉,可以先看。原创 2023-11-25 19:23:16 · 951 阅读 · 0 评论 -
APUE学习之socket网络编程
Socket通信是一种计算机网络中常见的通信机制,用于在不同计算机之间进行数据交换。Socket(套接字)是网络编程的基本组件之一,它提供了一种标准的编程接口,允许应用程序通过网络进行通信。套接字是通信的基本单元,它是网络通信的接口。套接字提供了一种封装了网络通信细节的抽象层,使得应用程序可以通过套接字进行数据的发送和接收。Socket通信可以使用不同的通信协议,其中最常见的是TCP(传输控制协议)和UDP(用户数据报协议)。TCP提供可靠的、面向连接的通信,而UDP是一种无连接的、不可靠的通信方式。原创 2023-11-24 16:03:01 · 1080 阅读 · 4 评论