1. 不懂Unix的人注定最终还要重复发明一个蹩脚的Unix。2. 以太网的发,就有一半的知识会过时。4. Unix具有非常彻底的灵活性。5. 让每个程序就做好一件事。6. 假定每个程序的输出都会成为另一个程序的输入,
写在前面: 最近在看nginx具体接口的实现,发现一些网络接口不是很熟悉,大概看了下Unix网络编程,发现上面都有具体介绍。后续这段时间攻读下这本教程。记于 2018-1-30第三章 套接字编程简介1. IPv4套
原创
2021-07-12 17:05:57
97阅读
exit函数终止方式分为两种:正常终止:在main函数
原创
2022-02-28 11:35:32
77阅读
Unix编程哲学参考其它另外三个不同版本的翻译:* Imperfect C++中文版* 心开天籁* Unix编程
exit函数终止方式分为两种:正常终止:在main函数中执行return调用exit函数,该函数会关闭所有标准I/O流调用_exit系统调用函数,此函数由exit函数调用异常终止调用abort,它产生一个SIGABRT信号当进程接收到某个信号时不管进程如何终止,最后都会执行同一行代码,这段代码会为相应进程关闭所有打开的描述符,释放它所使用的存储器进程为了通知它的...
原创
2021-06-29 13:42:26
275阅读
就是不改err_sys方法为printf, 我把代码放在/root/Desktop/unix/apue.2e 编辑源码解压生成的apue.2e文件夹下的Make.defines.linux WKDIR=/home/var/apue.2e为/root/Desktop/unix/apue.2e 然后进入apue.2e/std 目录,编辑linux.mk。修改里面
转载
精选
2016-01-28 13:35:02
1715阅读
使用UDP编写的一些常见得应用程序有:DNS(域名系统),NFS(网络文件系统)和SNMP(简单网络管理协议)。 客户不与服务器建立连接,而是只管使用sendto函数给服务器发送数据报,其中必须指定目的地(即服务器)的地址作为参数。类似的,服务器不接受来自客户的连接,而是只管调用...
转载
2013-07-25 12:16:00
138阅读
2评论
Unix哲学一言以蔽之模块原则 (使用简洁的接口拼合简单的部件)计算机编程的本质就是控制复杂度要编写复杂软件而又不至于一败涂地的唯一方法就是降低其整体复杂度——用清晰的接口把若干简单的模块组合成一个复杂的软件。如此一来,多数问题只会局限于某个局部,那么就还有希望对局部进行改进而不至牵动全身。清晰原则 (清晰胜于技巧)维护成本是高昂的,在写程序时,要想到你不是写给执行代码的计算机看的,而是给人——将
原创
2013-10-15 08:57:54
770阅读
最小立异原则如有可能,尽量允许用户将接口功能委派为熟悉的程序来完成不能委派时,那就效仿接口设计评估 简洁:一个事务处理需要的动作时间及复杂度需要较低的上限 表现力: 接口可以触发相当广泛的行为 易用: 易用性同要求用户需要记忆的东西成反比 透明: 用户在使用接口的时候,几乎没有什么问题、数据或程序的相关状态需要记忆 脚本化能力:很容易被其他程序调用CLI和可视接口之间权衡 CLI:丰富的表现力,高度的脚本化能力,易用性低(需要费劲的记忆),透明度通常也较低 GUI:易用,不能脚本化,处理规模大的问题需要机械性重复操作 长远来看,为了既能服务一般用户,又能服...
转载
2012-02-12 13:18:00
133阅读
2评论
UNIX 环境高级编程本书描述了UNIX系统的程序设计接口--系统调用接口和标准C库提供的很多函数。与大多数操作系统一样,Unix为程序员运行提供了大量的服务--打开文件,读文件,启动一个新程序,分配存储区以及获得当前时间等。这些服务被称为系统调用接口(system call interface)。...
转载
2014-11-07 11:40:00
91阅读
2评论
1.基于操作系统的程序设计
1.1 多用户环境下的程序设计
多用户环境下的程序设计是在操作系统的管理下进行的,即用户程序的执行,对系统设备、文件等各种资源的访问使用是在操作系统的控制下进行的。
1.2 系统编程的思想
系统编程的思想就是要求程序员要站在操作系统的角度看问题,充分考虑到系统为用户提供了哪些服务和资源并正确地利用。
#include #include #include #include #include #include #define MAXLINE 4096 #define FIFO1 "/tmp/fifo.1"#define FIFO2 "
原创
2022-09-09 15:58:52
60阅读
一个完整socket的相关描述(协议,本地地址,本地端口,远程地址,远程in,i
开始讲述Unix下C语言编程与项目时间的读书笔记。
推荐
原创
2009-05-20 13:43:30
3570阅读
6评论
一.多进程程序的特点
由于UNIX系统是分时多用户系统, CPU按时间片分配给各个用户使用, 而在
实质上应该说CPU按时间片分配给各个进程使用, 每个进程都有自己的运行环境
以使得在CPU做进程切换时不会"忘记"该进程已计算了一半的"半成品". 以DOS
的概念来说, 进程的切换都是一次"DOS中断"处理过程, 包括三个层次:
(1)用户数据的保存: 包括正文段(TEXT), 数据段(
转载
2021-08-12 11:04:54
185阅读
一个程序至少有一个进程。一个进程至少有一个线程。进程拥有自己独立的存储空间,而线程能够看作是轻量级的进程,共享进程内的全部资源。能够把进程看作一个工厂。线程看作工厂内的各个车间,每一个车间共享整个工厂内的全部资源。就像每一个进程有一个进程ID一样,每一个线程也有一个线程ID,进程ID在整个系统中是唯一的。但线程ID不同,线程ID仅仅在它所属的进程环境中有效。
线程ID的数据类型
转载
2016-01-25 12:53:00
100阅读
2评论
什么应是可配置的Unix提倡建立机制而把策略决定权留给用户,往往会导致选项过多。不应该配置:能够可靠自动检测的东西;用户不应该看到优化开关;能用脚本包装器或简单管道完成的任务,就不要使用配置开关实现。配置放在哪里/etc目录:管理员设置的系统级选项支持#开头的注释不去别隐匿的空白符多个连续的空行视为单个空行词法上把文件视作简单的用空白符分割的标记序列,或多行标记,但支持以字符串语法对内嵌空白符的...
转载
2012-02-07 21:58:00
145阅读
2评论
UNIX环境高级编程(第3版) Advanced Programming in the UNIX Environment Linux/UNIX系
转载
2016-08-03 09:55:00
72阅读
2评论
unix环境高级编程笔记准备工作1. 安装 unix或Linux 这里安装的是linux(虚拟机安装)虚拟机连接有