- 博客(18)
- 资源 (25)
- 收藏
- 关注
原创 APUE学习笔记——8.1-8.4 进程基础
1 进程id是唯一的。(不会有进程id一样的两个进程)2进程id是可复用的,一个进程销毁后,它的id号可以被新的进程使用。但是Unix采用了延迟复用的算法,也就是进程 销毁后它的id不会立即被使用。3 进程id为0的是调度进程。这是系统进程,是内核的一部分。4 进程id为1的是init进程。init进程读取初始化文件/etc/rc*files 或者/etc/inittab,以及在/etc/init.d中的文件,使系统处于 某种状态。 init进程是用户进程,而不是系统进程。 我们
2014-08-29 13:57:20 1325
原创 APUE学习笔记——8.11 实际用户ID、有效用户ID、设置用户ID
首先,给出本文要使用的例子,对一个数组a进行升序的插入排序int a[10] = {1,5,3,9,0,2,7,4,8,6};算法的C语言描述void inserSort(int a[], int length){ int i = 1; for(i = 1; i < length; i++) {
2014-08-29 09:58:57 1260
原创 APUE学习笔记——7main()函数启动与退出
程序的启动与退出过程先上图,了解进程运行的机制。 内核首先调用exec,运行C启动进程,C启动进程会调用main()函数。 其他所有函数都是由main函数直接或间接调用的。 从Figure7.2可以看出,内核与用户进程的交互,直接使用的只有三个函数:exec、_exit、_Exit exec是用来启动C启动历程的,关于用户
2014-08-28 15:55:21 1188
原创 APUE学习笔记——6.10 时间与时间例程 time_t
Unix提供的最基本的时间服务室日历时间(纪元时间),也就是计算1970年1月1日0时0分0秒到当前的秒数。该秒数用time_t表示。typedef long time_t; /* 时间值time_t 为长整型的别名*/Unix/Linux提供了微秒级别获取和设置时间的函数gettimeofday()与settimeofday(),但根据man手册的描述,这两个函数已经过时,此处不做介绍。仅列出原型(这两个函数编译需要glibc的支持)夏时制,夏时令(Daylight Saving Time
2014-08-28 14:50:01 1651
原创 APUE学习笔记——6 系统数据文件与信息
用户口令:/etc/passwd文件 getpwuid函数由ls(1)程序使用,它将i节点中的数值用户id映射为用户登录名。在键入登录名时,getpwnam函数由login(1)程序使用。阴影口令/etc/shadow 仅有login和password等少数几个程序需要用到加密口令的存取。阴影口令使用结构体:(该结构体中只有用户名和加密口令是必须的,其他的只是用户控制账户时间信息)组文件/etc/group
2014-08-28 10:22:20 976
原创 APUE学习笔记——10 信号
信号的基本概念 用sigaction代替signal 可靠信号与不可靠信号 现在大部分Unix系系统如Linux都已经实现可靠信号。 SIGKILL和SIGSTOP信号既不能被忽略也不能被捕捉,因为这两个信号向内核或者超级用户提供了终止或停止信号的可靠方法。
2014-08-27 14:07:40 1441
原创 APUE学习笔记——5.5~5.7数据流的打开与读写
1.open#include FILE *fopen(const char *restrict pathname,const char *restrict type)FILE *freopen(const char *restrict pathname,const char *restrict type,FILE *restrict fp);FILE *fdopen(int fd,co
2014-08-25 14:49:23 1163
原创 APUE学习笔记——5缓冲Buffering、流、文件对象
缓冲的几个基本概念 缓冲的作用:减少系统read和write的次数。全缓冲 系统标准I/O缓冲区被写满时才进行真正的I/O操作。 磁盘文件一般使用全缓冲 全缓冲使用malloc来分配缓冲区行缓冲 系统遇到换行符时进行真正的I/O操作。 Terminal一般使用行缓冲 行缓冲有固定的size,当这个固定size的行缓冲区被填满时,不管有没有遇到换行符都开始进行一次I/O操作。 行缓冲在
2014-08-25 10:41:36 1470
原创 APUE学习笔记——4.2结构体 struct stat 及其相关函数介绍
以下不少内容来自man手册结构体struct stat 结构体struct stat用于保存文件相关的所有信息。 struct stat的基本成员如下所示 struct stat { dev_t st_dev; // 文件所在设备的设备id,可以分解为主设备号和此设备号
2014-08-21 11:28:58 1082
原创 APUE学习笔记——3.文件共享与fcntl介绍
基本概念内核使用3个数据结构描述一个打开的文件:进程表、文件表、V节点表首先了解3种数据结构的概念 1 进程表 每一个进程有一个进程表。进程表里是一组打开的文件描述符,如标准输入0,标准输出1,标准错误2... 2 文件表 进程打开一个文件时,内核就为该文件创建一个文件表。
2014-08-20 16:58:44 1985
转载 GNU C 、ANSI C、标准C、标准c++区别和联系
转载自GNU计划,又称革奴计划,是由Richard Stallman在1983年9月27日公开发起的。它的目标是创建一套完全自由的操作系统。它在编写linux的时候自己制作了一个标准成为 GNU C标准。ANSI 美国国家标准协会,它对C做的标准ANSI C标准后来被国际标准协会接收成为 标准C 所以 ANSI C 和标准C是一个概念总体来说现在linux也支持标准C,
2014-08-20 09:02:11 1035
转载 应该知道的Linux技巧
这篇文章来源于Quroa的一个问答《What are some time-saving tips that every Linux user should know?》—— Linux用户有哪些应该知道的提高效率的技巧。我觉得挺好的,总结得比较好,把其转过来,并加了一些自己的理解。 首先,我想告诉大家,在Unix/Linux下,最有效率技巧的不是操作图形界面,而是命令行操作,因为命令行意味着自
2014-08-19 12:13:39 758
原创 TCP 长连接与短连接的区别与实现
TCP是一种面向连接的传输协议,在进行通讯时,通讯双方需要建立连接。TCP需要3次握手建立连接、4次握手释放连接。这些握手的过程是通过发包来实现的,需要消耗一些资源。那么问题来了,我们如果每次进行一次业务通信就建立和释放一次连接会不会太浪费资源了。为了解决这个问题,长连接出现了。短连接:基础语义上的连接,没进行一次业务通信就建立一次连接,通信完毕后就立即释放连接。长连接:第一次进行业务
2014-08-15 12:27:32 2031
转载 Android开发工具配置大全
程序员生存定律这系列的目录在这里:程序员生存定律--目录喜欢从头瞄的,可以移步。-------------------------------------------------------------------------------1. “博”与“专”上的迷失假设说一个人的学习已经聚焦,并且学习的内容和自己实际参与的项目也相吻合,那么是不是就没有问题了?很不幸,答
2014-08-14 23:24:06 907
原创 Ubuntu下sh *.sh使用==操作符执行报错
ubuntu默认的sh是连接到dash,而我们写shell脚本时使用的时bash。bash和dash在一些方面是不兼容的。因此执行同一个脚本,两者结果不一样,可能用./*sh可以执行,而sh *.sh报错。
2014-08-14 17:40:06 2162
原创 sed和awk简介
什么是sed和awk sed和awk是Linux环境下数据的处理工具,可以完成对数据的增删改查的功能。 sed处理时是以行尾单位的,awk处理数据时以字段为单位。
2014-08-14 10:00:10 1445
原创 diff和patch 打补丁
在Linux环境下,有两个工具用来给project打补丁,即diff和patchdiff diff具有比较功能。可以使用man命令查看其使用方法。NAME diff - compare files line by lineSYNOPSIS diff [OPTION]... FILES常用选项:
2014-08-12 23:05:27 2729
原创 NAT&Port Forwarding&Port Triggering
NAT Nat,网络地址转换协议。主要功能是实现局域网内的本地主机与外网通信。 在连接外网时,内部Ip地址需要转换为网关(一般为路由器Ip地址)(端口号也需要相应的转换) 如:QQ程序 在一个局域网中,路由器(网关)WAN侧ip为200.0.0.123 局域网三台计算机:计算机A 192.168.0.10,计算机B
2014-08-08 15:55:48 2692
OpenStack企业云平台架构与实践.pdf
2018-04-25
TCP-IP详解卷2-实现.pdf
2018-04-13
UNIX环境高级编程 中文第3版
2018-01-15
libev-官方手册
2017-06-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人