- 2024-04-20APUE-树莓派温度监控
一、项目介绍树莓派上通过一线协议连接DS18B20,然后采用网络socket编程同时实现客户端和服务器端程序,其中客户端主要实现定时上报的功能,服务器端用来采集客户端上报的数据并存储到数据库中。1、客户端介绍连接服务器的主机名和端口号可以通过命令行参数修改;客户端程序需要定时
- 2024-03-29[apue] 进程控制那些事儿
进程标识在介绍进程的创建、启动与终止之前,首先了解一下进程的唯一标识——进程ID,它是一个非负整数,在系统范围内唯一,不过这种唯一是相对的,当一个进程消亡后,它的ID可能被重用。不过大多数Unix系统实现延迟重用算法,防止将新进程误认为是使用同一ID的某个已终止的进程,下面这
- 2024-03-14APUE-树莓派温度监控项目-断线重连
1、说明客户端需要实现一下功能如果网络socket异常(如网络断线、服务器端退出),在网络故障恢复后客户端程序能够自动重连;在网络故障出错期间,定时采样正常进行,在此瞬间所有采样的数据(临时存储到SQLite数据库中;网络故障恢复之后,客户端程序自动将之前暂存到数据库中的数据上报销
- 2024-01-15APUE-popen
FILE*popen(constchar*command,constchar*type);popen()会调用fork()产生子进程,然后从子进程中调用/bin/sh-c来执行参数command的指令。参数type可使用“r”代表读取,“w”代表写入。依照此type值,popen()会建立管道连到子进程的标准输出设备或标准输入设备,然后返回一个
- 2024-01-14APUE-网络socket通信
网络通信 大部分网络应用系统可分为两部分:客户(Client)和服务器(Server),网路服务程序架构又两种:CS模式和BS模式。CS:Client/Server(客户机/服务器)结构,特点:交互性强,具有安全的存取模式,网络通信量低,响应速度快,利于处理大量数据。BS:Browser/Server(浏览器/服务器)结构,特点:分布性强,维护
- 2024-01-11APUE-文件I/O
库函数和系统调用库函数调用系统调用在所有的ANSIC编译器中,C库函数都是相同的各个操作系统的系统调用是不同的,这导致程序不可移植它调用库函数中的一段程序(或函数)它调用系统内核的服务与用户程序相联系在内核地址空间执行它的运行时间属于“用户时间”运
- 2023-11-04最全的李慧芹APUE-文件系统笔记(上)
文件系统注:李慧芹老师的视频课程请点这里,本篇为文件系统一章的笔记(上,剩余内容和李慧芹老师课上提到的myls的实现预计会一起在下中放出),课上提到过的内容基本都会包含,上一章为系统调用IO本章内容目录和文件获取文件属性(实现类ls)文件访问权限umask更
- 2023-11-02《APUE》学习笔记
学习资源:https://www.bilibili.com/video/av75586088/?p=2&spm_id_from=pageDriver&vd_source=1ecb7953e7a94890c19f9abe34af6240项目:IPV4流媒体广播系统知识点:多进程的实现及关系进程间通信多线程或多进程并发数据库文件I/O操作守护进程系统日志文件流量控制网络套接
- 2023-09-20最全的李慧芹APUE-标准IO笔记
标准IO注:李慧芹老师的视频课程请点这里,本篇为标准IO一章的笔记,课上提到过的内容基本都会包含I/O(Input&Output):是一切实现的基础stdio(标准IO)sysio(系统调用IO/文件IO)系统IO是内核接口,标准IO是C标准库提供的接口,标准IO内部使用了系统IO标准IO会合并
- 2023-08-29[apue] 进程环境那些事儿
main函数与进程终止众所周知,main函数为unixlike系统上可执行文件的"入口",然而这个入口并不是指链接器设置的程序起始地址,后者通常是一个启动例程,它从内核取得命令行参数和环境变量值后,为调用main函数做好安排。main函数原型为:intmain(intargc,char*argv[]);这是I
- 2023-07-28apue.3e遇到的编译问题(recipe for target 'badexit2' failed)以及ls1.c案例测试
APUE(慢慢啃这本书)编译问题,网上获得的前辈方法,本地测试可行,仅作记录。1.系统环境2.下载解压tar-zxvf*.tar.gzcd./apue.3emake报错:collect2:error:ldreturned1exitstatusMakefile:31:recipefortarget'badexit2'failedmake[1]:***[badexit2]Error1m
- 2023-07-13APUE-signal-自定义信号
[Linux定义信号的一些细节处理-自定义信号变量]https://blog.csdn.net/renlonggg/article/details/78309662#defineMY_SINGL_1(SIGRTMIN+1)/*信号函数,发送接受*/voidsignal_handler(intsignalnum){printf("Getsignal%d.\n",signalnum);}voidsigna
- 2023-04-18UNIX环境高级编程 第三版 源代码编译及使用
UNIX环境高级编程(第3版)中的代码示例多次包含了一下头文件:#include"apue.h"搜索发现原来这个头文件是作者自定义的一个文件,并在官网提供了源代码供下载。下载之后解压该文件:tar-zxfsrc.3e.tar.gz进入文件夹并编译:cdapue.3emake等待结束,如果没有报错就成功了。(如
- 2023-04-17[apue] 一图读懂 Unix 时间日期例程相互关系
概览 开门见山先上图界定一些术语,方便后面说明:GMT:格林威治平均时,太阳每天经过位于英国伦敦郊区的皇家格林威治天文台的时间为中午12点,1972年之前使用的国际标准时间,因地球在它的椭圆轨道里的运动速度不均匀,这个时刻可能和实际的太阳时相差16分钟。UTC:国际标准时间,相当