首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

unix环境高级编程(上)-文件篇

目录 前言 unix基础知识 unix标准化和实现 unix提供的文件IO 文件和目录 标准IO 系统数据文件 前言 笔者将《unix环境高级编程》主要内容总结为三篇:文件篇,进程篇,高级io和进程间通信三大板块...本文是unix环境高级编程系列文章第一篇:文件篇。...unix基础知识 介绍了unix的体系结构,以及unix中的文件和目录,输入输出,程序和进程,信号等基本概念 unix标准与实现 标准包括C语言的标准和操作系统标准,实现包括BSD,FreeBSD,Linux...unix实现 SVR4:AT&T的UNIX系统实验室产品,初版了系统V接口定义 BSD:加州伯克利分校研究和开发的,含有AT&T许可证的代码 FreeBSD:BSD去除AT&T许可证代码后,完全免费的版本 Linux...:1991年Linux开发的一款被目前广泛使用的unix操作系统 Mac OS:核心系统是Darwin,基于Mach内核和FreeBSD的组合 Solaris:sun公司开发的unix系统版本 三. unix

1.4K42

UNIX 环境高级编程(第3版 )

《UNIX环境高级编程(第3版)》是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的第3版。...《UNIX环境高级编程(第3版)》内容权威,概念清晰,阐述精辟,对于所有层次UNIX/Linux程序员都是一本不可或缺的参考书。...适读人群 :所有层次UNIX/Linux程序员 20多年来,严谨的C程序员都是依靠一本书来深入了解驱动UNIX和Linux内核的编程接口的实用知识的,这本书就是W....Richard Stevens所著的《UNIX高级环境编程》。现在,Stevens的同事Steve Rago彻底更新了这本经典著作。...为了使读者能融会贯通,书中还提供了几个贯穿整章的案例,每个案例都根据现在的技术环境进行了全面更新。 《UNIX环境高级编程(第3版)》帮助了几代程序员写出强大、高性能、可靠的代码。

1.2K20

unix环境高级编程(中)-进程篇

目录 前言 进程环境 进程控制 进程关系 信号 线程 线程控制 高级IO 进程间通信 网络间进程通信:套接字 高级进程间通信 前言 笔者将《unix环境高级编程》主要内容总结为三篇:文件篇,进程篇,高级...本文是unix环境高级编程系列文章第二篇:进程篇。...最后介绍信号和fork对线程的影响 守护进程 主要说明守护进程的特征,常见的系统守护进程,以及守护进程的编程规则。然后介绍处理守护进程的通用日志架构,最后介绍守护进程的一些惯例 一. 进程环境 1....线程标识 线程id:线程的唯一标识 表示:pthread_t数据类型,各个操作系统有不同的具体实现,linux下为无符号的长整形 线程id比较:不能用简单的数值比较,使用pthread_equal函数...意味着单个信号修改了某个信号相关的处理行为,其他线程必须共享这个行为 设置线程信号屏蔽字:pthread_sigmask 等待信号发生:sigwait 发生信号到线程:pthread_kill linux

2.1K42

Linux C语言高级编程之网络编程

简介 本章主要讲解网络编程的基础知识,主要包括七层网络模型、常用通信协议、IP地址与子网掩码及端口号、字节序。 七层网络模型 讲到网络首先说一下最常见的网络模型,七层网络模型。...子网掩码:主要用于划分IP地址中的网络地址和主机地址,也可以判断两个IP地址是否在同一个局域网中,具体的划分方法如下: IP地址 & 子网掩码 => 网络地址 + 主机地址 网络编程中需要提供...地址可以定位到具体的某一台主机; 端口号:知道端口号可以定位到主机上的某一个具体的进程; 端口号本质就是unsigned short类型,范围是:0 ~ 65535,但是其中0 ~ 1024之间的端口号被系统占用,因此以后编程时建议从...将低位字节的数据存放在高位内存地址的系统; 小端系统中按照地址从小到大依次为:0x78 0x56 0x34 0x12 大端系统中按照地址从小到大依次为:0x12 0x34 0x56 0x78 一般来说,在网络编程中需要将所有发送到网络中的多字节整数先转换为网络字节序再发送...总结:以上概念都是网络编程中最常见最基础的知识点,这些都需要大家掌握。另预告一下,下一章将讲解非常重要的SOCKET网络编程,希望大家多多关注。

5.3K90

高级编程Linux read系统调用

比如getpgid、getpriority、setpriority、sethostname 进程管理:用来保证系统中进程能以多任务在虚拟内存环境下得以运行。...比如 fork、clone、execve、exit等 那为什么一定要用系统调用来访问操作系统的内容呢,其实这可以看做对内核的保护,linux分为用户空间和内核空间,而用户空间是不允许访问内核空间的数据的...引入 cache 层的目的是为了提高 linux 操作系统对磁盘访问的性能。 Cache 层在内存中缓存了磁盘上的部分数据。...另外linux页高速缓存对被缓存页的范围定义的非常宽。缓存的目标是任何基于页的对象,这包含各种类型的文件和各种类型的内存映射。...为了满足普遍性要求,linux使用定义在linux/fs.h中的结构体address_space结构体描述页高速缓存中的页面。

5.9K110

《UNIX环境高级编程》第七章进程环境

启动例程从内核取得命令行参数和环境变量值,然后为按照上述方式调用main函数做好安排。...7.4 命令行参数 7.5 环境表 每个程序都接收到一张环境表。跟参数列表一样,环境表也是一个字符指针数组。其中每个指针包含一个以null结束的C字符串的地址。...可以用其取环境变量值。 还可以设置环境变量,比如改变环境变量、增加新的环境变量。...注意:环境表和环境字符串通常占用的是进程地址空间的顶部,所以它不能在向高地址扩展了;同时也不能移动在它之下的各栈帧,所以也不能向低地址方向扩展。 那么是如何实现上述操作的呢?...(这个也需要理解) 1)删除:比较简单,先在环境表中找到改指针,然后将所有后续指针都向环境表首部顺次移动一个位置。

46110

unix环境高级编程(下)-高级IO和进程间通信篇

前言 笔者将《unix环境高级编程》主要内容总结为三篇:文件篇,进程篇,高级io和进程间通信三大板块。本文是unix环境高级编程系列文章第三篇:高级IO和进程间通信篇。...该篇主要包括: 高级io 先介绍记录锁的概念和记录锁的数据结构。然后介绍阻塞io,非阻塞IO,异步io,IO多路转接等概念,后者都是针对前者更优的技术。...然后介绍socket编程的连接建立,数据传输等。 高级进程间通信 高级进程间通信提供一种可以在进程间传递文件描述符的机制,包括STREAMS管道和unix域套接字 一. 高级IO 1....sa_famliy_t sa_famliy; char sa_data[]; } 复制代码 套接字实现可以自由添加aa_data字段以及长度 //linux...高级进程间通信 1.

1.3K42

linux环境下的时间编程

因此时间处理成为了许多Linux开发者的梦魇,遇到时间处理往往避之不及。不过只要你稍微花费一点点精力,学会在Linux上优雅的处理时间和日期也并不是什么难事。...对于Linux世界来说这个时间的起点是1970年1月1日0时(UTC),又被叫做Epoch,Linux上以此为起点的均为UTC时间。...这也是Linux上不同时间表示法的共通之处。 Linux上最常见的时间存储方案有四种:time_t,struct tm,struct timeval和struct timespec。...这就是为什么在Linux上处理时间问题会成为噩梦的原因之一。...在不引入第三方库和自己手动计算的情况下,Linux处理时区的手段只有以下两种: 函数自己定义参数和返回值使用local time还是UTC time; 系统根据环境变量TZ以及配置文件/etc/localtime

3.3K30

UNIX环境高级编程(APUE)之单实例守护进程

在UNIX环境高级编程(APUE)中提到了守护进程的创建方法,思路很清晰,所以这里通过代码具体研究下。 1 完整程序:单实例守护进程 根据APUE的介绍,创建守护进程基本需要如下7个步骤。...daemon_process.c * @Describe A simple example for creating a single object of daemon process in linux...\n" ); while(1) sleep(120); return 0; } 2 程序编译 使用《Linux C/C++工程中可生成ELF、动/静态库文件的通用Makefile...接着由于第二个进程(PID:25873)退出,那么它的子进程(PID:25874)执行第121行的打印语句;在关闭了所有文件描述符后,该子进程(PID:25874)打开标准输入/输出/错误流,最后该子进程成为由Linux...level(LOG_EMERG、LOG_ERR、LOG_WARNING等)和日志文件类型facility(LOG_CRON、LOG_MAIL、LOG_SYSLOG和默认的LOG_USER等)把进程的内容输出到Linux

6310
领券