自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TODD911的专栏

夯实基础,循序渐进

  • 博客(18)
  • 资源 (2)
  • 收藏
  • 关注

原创 《UNIX环境高级编程》笔记--管道

管道是UNIX系统IPC的最古老形式,并且所有的UNIX系统都提供此种通信机制。管道有下列两种局限性:a.历史上,它们是半双工的,现在某些系统提供全双工管道,但是为了最佳的可移植性,我们决不应预先假定系统使用此特性。b.它们只能在具有公共祖先的进程之间使用。通常一个管道由一个进程创建,然后该进程调用fork,此后父子进程之间可以使用该管道。(FIFO没有第二种局限性,UNIX域

2014-01-29 10:34:33 2593

原创 《UNIX环境高级编程》笔记--存储映射IO

存储映射IO使一个磁盘文件与存储空间中的一个缓冲区相映射。于是当从缓冲区中取数据,就相当于读文件中的相应的字节;将数据存入缓冲区,则相应字节就自动写入文件,这样就可以在不是用read和write的情况下执行IO。这可以通过mmap函数实现。#includevoid *mmap(void *addr, size_t len, int prot, int flag, int filede

2014-01-27 16:27:49 2332

原创 《UNIX环境高级编程》笔记--readv和writev函数

readv和write函数用于在一次函数调用中读,写多个非连续缓冲区。#includessize_t readv(int filedes, const struct iovec *iov, int iovcnt);ssize_t writev(int filedes, const struct iovec *iov, int iovcnt);//若成功则返回已读,写的字节数,若出错则

2014-01-26 12:55:43 8711

原创 《UNIX环境高级编程》笔记--IO多路转换

读取

2014-01-26 10:45:45 1837

原创 《UNIX环境高级编程》笔记--STREAMS

STREAMS(流)是system V提供的构造内核设备驱动程序和网络协议包的一种通用方法。流在用户进程和设备驱动程序之前提供了一条全双工通路。流无需和实际硬件设备直接会话,流也可以用来构造伪设备驱动程序,下图是一个简单流的基本构造。在流首之下可以压入处理模块,这个可以用ioctl命令实现,下图表示包含一个处理模块的流。各方框之间用两根带箭头的线连接,以突出流的全双工特性,

2014-01-23 13:49:46 2995

原创 《UNIX环境高级编程》笔记--记录锁

记录锁的功能是:当一个进程正在读或者修改文件的某一个部分时,它可以阻止其他进程修改同一文件区。记录锁其实是字节范围锁,因为它锁定的只是文件中的一个区域,也可能是整个文件。1.fcntl记录锁SVR3通过fcntl函数增加了记录锁功能。fcntl函数的原型已经在以前给出,这边再重复一次。#includeint fcntl(int filedes, int cmd, .../* st

2014-01-22 16:21:16 4437

原创 《UNIX环境高级编程》笔记--非阻塞IO

系统调用分成低速系统调用和其他系统调用两类。低速系统调用是可能会使进程永远阻塞的一类调用调用,他们包含:如果某些文件类型(例如管道,终端设备和网络设备)的数据并不存在,则读操作可能会使调用者永远阻塞。如果数据不能立即被上述相同类型的文件接受(由于在管道中无空间,网络流控制等),则写操作也会使调用者永远阻塞。在某些条件发生之前,打开某些类型的文件会被阻塞。(例如开打一个终端设备可能需要等

2014-01-22 09:34:00 2145

原创 《UNIX环境高级编程》笔记--出错记录

与守护进程有关的一个问题是如何处理出错消息。因为它没有控制终端,所以不能只是简单地写到标准出错上,我们希望有一个集中的守护进程出错记录设施。自4.2BSD以来,BSD syslog设施得到了广泛应用。大多数守护进程使用这一设施。下图显示了syslog设置的详细组织结构;有三种方法产生日志消息:1.内核例程可以调用log函数。任何一个进程通过打开然后读/dev/klog设备就

2014-01-21 10:22:44 1792

原创 《UNIX环境高级编程》笔记--守护进程

守护进程也被称为精灵进程(daemon),是生存期较长的一种进程。

2014-01-20 10:14:36 2741 1

原创 《UNIX环境高级编程》笔记-线程和信号

每个线程都有自己的信号屏蔽字,但是信号的处理

2014-01-17 21:59:39 1994

原创 《UNIX环境高级编程》笔记--线程和fork

我们先来看一个程序:#include #include pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;void* th_fn(void* arg) { printf("start th_fn.\n"); pthread_mutex_lock(&mutex); printf("in th

2014-01-13 20:50:04 1716

转载 linux线程浅析

本文转载于:http://hi.baidu.com/_kouu/item/282b80a933ccc3a829ce9dd9关于linux线程在许多经典的操作系统教科书中, 总是把进程定义为程序的执行实例, 它并不执行什么, 只是维护应用程序所需的各种资源. 而线程则是真正的执行实体. 为了让进程完成一定的工作, 进程必须至少包含一个线程. 如图1.进程所维护的是程序所包含的

2014-01-13 10:46:13 1110

原创 《UNIX环境高级编程》笔记--线程的取消选项

有两个线程并没有包含在pthread_attr_t机构中,他们是可取消状态和可取消类型,这两个属性影响着线程在响应pthread_cancel函数调用时所呈现的行为。可取消状态属性可以是PTHREAD_CANCEL_ENABLE和PTHREAD_CANCEL_DISABLE,线程可以通过调用pthread_setcancelstate修改它的可取消状态。#includeint p

2014-01-12 14:30:26 1946

原创 《UNIX环境高级编程》笔记--线程私有数据

线程私有数据时存储和查询与某个线程相关的数据的一种机制。把这种数据成为线程私有数据或线程特定数据的原因是,希望每个线程都可以独立地访问数据副本,并不需要担心与其他线程的同步访问问题。为什么要使用线程私有数据呢?原因有两个:1.有时候需要维护基于每个线程的数据,因为线程ID并不能保证是小而连续的整数,所以不能简单地分配一个线程数据数组,用线程ID作为数组的索引。即使线程ID确实是小而

2014-01-12 12:47:37 1815

原创 《UNIX环境高级编程》笔记--同步属性

1.互斥量属性用pthread_mtexattr_init初始化

2014-01-12 10:22:37 2733

原创 《UNIX环境高级编程》笔记--线程属性

在之前调用pthread_create函数的例子中,传入的参数都是空指针,而不是指向pthread_attr_t结构的指正,可以使用pthread_attr_t结构修改线程默认属性,并把这些属性与创建的线程联系起来。可以使用pthread_attr_init函数初始化pthread_attr_t结构。调用pthread_attr_init后,pthread_attr_t结构所包含的内容就是

2014-01-09 21:02:52 1607

原创 《UNIX环境高级编程》笔记--线程的同步

多个线程共享相同的内存时,需要确保每个线程看到一致的数据视图。1.互斥量可以通过使用pthread的互斥接口保护数据,确保同一时间只有一个线程访问数据,互斥量(mutex)从本质上说是一把锁,在访问共享资源前对互斥量进行枷锁,在访问完成后释放互斥量上的锁。对互斥量进行加锁后,任何其他试图再次对互斥量进行加锁的线程将被阻塞知道当前线程释放该互斥锁。如果释放互斥锁时有多个线程阻塞,所有

2014-01-08 12:59:14 3119

原创 《UNIX环境高级编程》笔记--线程的标识、创建和终止

1.线程标识就像每个进程都有一个进程ID一样,每个线程都有一个线程ID。进程ID在整个系统中是唯一的,但线程ID只在它所属的进程环境中有效。线程ID使用pthread_t数据类型来表示,实现的时候可以使用一个结构来表示pthread_t数据类型,所以可移植的操作系统实现不能将它比作整数处理。因此必须使用函数来对比线程ID进行比较。#include int pthread_eq

2014-01-06 09:46:45 2378 1

哈弗曼编码实现文件压缩

使用了哈弗曼编码原理,实现文件压缩和解压缩。和我的博文进行配套:http://blog.csdn.net/todd911/article/details/8728301

2014-09-07

软件测试[(美)ron patton]读书笔记.pdf

软件测试[(美)ron patton]读书笔记

2009-04-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除