进程的基本环境
1、main主函数原型
int main( int argc, char *argv[]);
在exec函数执行main函数前,先调用一个特殊的启动例程,改启动例程为程序的起始地址,
目的是为了从内核获取进程的命令行参数和环境变量
2、进程的终止
终止进程的方法有好多种,常用的有
(1)从main返回
return 其实是调用exit函数。
exit函数执行标准I...
分类:
系统相关 时间:
2015-05-18 10:52:56
阅读次数:
120
.....之前我们在创建线程的时候都是使用的默认属性,本章主要讨论的是自定义线程的属性。使用默认属性基本上能解决掉遇到的大部分问题,所以自定义属性在实际项目中用得比较少。1.线程属性《APUE》第三版 P341 表中的属性可以用来限定一个进程能创建线程的最大数量,但是限定线程数量的宏不必太当真,因为...
分类:
编程语言 时间:
2015-05-18 08:54:12
阅读次数:
141
起初看过一遍内存映射I/O,意思大概是懂了,就是直接操作文件再而直接通过缓冲区来操作,减少一些read、write调用所花费的时间。加上文中给出一个copy的例子,意思也好理解的。不过困扰的来了,我琢磨着在映射两个文件后,再使用memcpy内存复制函数将文件写入完全可以,但是这是两个文件的操作,我想...
分类:
其他好文 时间:
2015-05-17 21:29:00
阅读次数:
126
《UNIX环境高级编程》(这里使用的是第二版本的源码)每个历程中,都会有这样一行源码:
#include "apue.h"
这个头文件是作者把把每个例程中常用的标准头文件,一些常用的出错处理函数(err_**()之类的函
数)和一些常用的宏定义给整理在一个头文件中。这个可以省去在每个例程中录入较多的重复代码,这样可
以减少每个例程的长度。给读者带来了不少麻烦。下面给出一种源...
分类:
其他好文 时间:
2015-05-17 09:22:01
阅读次数:
139
昨天参加一个面试,第二个问题是:程序是怎么变成执行的进程的? 虽然知道 fork -> exec 等关键步骤,却不能系统地把基本过程表达出来! 面试官觉得这个是必须掌握的基础知识,所以基本在这里就被out了,悲剧! 虽然在面试之前 “APUE” 和 博主vamei 的下面这篇文章都读过两次...
分类:
系统相关 时间:
2015-05-16 08:59:15
阅读次数:
147
.....目录(一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO(二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO(三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录(四) 一起学 Unix 环境高级编程 (APUE) 之 系统数据文件和信息(五) ...
分类:
编程语言 时间:
2015-05-15 10:32:15
阅读次数:
194
最近系统的看了下unix网络编程的一些内容,对socket的理解有了进一步的加深,在看APUE的时候,那会儿看socket上面介绍的比较少,只是模糊的懂了如何去写一个简单的TCP服务端和客户端,对其中一些注意的点,以及实现的原理没有过多的去研究。这是我自己总结的socket编程的第一篇,基本就是介绍...
分类:
其他好文 时间:
2015-05-14 00:46:26
阅读次数:
166
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。本人使用的Linux为Ubuntu,主要以《APUE》(第3版)为学习蓝本...
分类:
系统相关 时间:
2015-05-12 21:08:40
阅读次数:
209
我们可以将文件I/O视为系统调用,内核要执行I/O操作,这里涉及到页缓存(高速缓存区)的概念,文件I/O执不执行与缓存区有关。
而标准I/O是对系统I/O调用的封装,标准I/O也有缓存区、行缓存的概念。正是由于这二级的缓存模式。导致标准I/O的效率很低。
当打开一个流时,标准I/O函数fopen返回一个指向FILE对象的指针。该对象通常是一个结构,它包含了标准I/O库为管理该流所需的所有信息,...
分类:
其他好文 时间:
2015-05-11 10:50:15
阅读次数:
161
#include "apue.h" (c程序添加的头文件)1. 超级用户权限登入 #cd /usr/include 2. 将apue.h和error.c两个文件copy到该目录下。(apue.h位于 your_apue_path/inlcude ; error.c位于your_apue_pat...
分类:
其他好文 时间:
2015-05-11 10:26:04
阅读次数:
120