自定义博客皮肤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的专栏

夯实基础,循序渐进

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

原创 《UNIX环境高级编程》笔记--tcgetpgrp,tcsetpgrp和tcgetsid函数

需要有一种方法来通知内核哪一个进程组是前台进程,这样,终端设备驱动程序就能了解将终端输入和终端产生的信号送到何处。#include pid_t tcgetpgrp(int filedes); //返回值:若成功则返回前台进程组的进程组ID,出错则返回-1.int tcsetpgrp(int filedes, pid_t pgrpid); //返回值:成功则返回0,出错则返回-1.函数t

2013-11-29 09:47:32 6913 3

原创 《UNIX环境高级编程》笔记--控制终端

会话和进程组有一些其他特性:1.一个会话可以有一个控制终端(controlling terminal),通常会话的第一个进程打开一个终端(终端设备或伪终端设备)后,该终端就成为该会话的控制终端,这通常是登录到其上的。2.建立与控制终端连接的会话首进程被称为控制进程。(controlling process)3.一个会话中的几个进程组可被分成一个前台进程组以及一个或者多个后台进程组。

2013-11-28 16:26:30 1804

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

会话(session)是一个或者多个进程组的集合。可以具有下图所有的安排,其中,一个会话中有3个进程组。上图的安排可能由以下形式的shell命令形成的:proc1 | proc2 &proc3 | proc4 | proc5进程调用setsid函数建立一个新会话。#include pid_t setsid(void); //若成功则返回进程组ID,出错则返回-1.

2013-11-26 20:58:47 1705

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

每个进程都属于一个进程组

2013-11-25 16:58:23 1785

原创 《UNIX环境高级编程》笔记--进程时间

我们可以测量进程的三种时间:墙上时钟时间,用户CPU时间和系统CPU时间。任一进程都可以调用times函数以获得它自己以及终止子进程的上述值。#include clock_t times(struct tms* buf); //若成功则返回流逝的墙上时钟时间(单位:时钟滴答数),若出错则返回-1.函数中buf的结构如下:struct tms{clock_t tms_utimes;

2013-11-24 19:26:46 1748

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

1.system函数的用法system函数能够执行函数参数中的命令。函数的定义如下:#include int system(const char* cmdstring);当cmdstring为NULL:如果shell可用则返回非0值,否则返回0.因为system函数在其实现中调用了fork,exec和waitopid,分解开来相当于执行了:1.fork  生成一个子进

2013-11-24 14:56:27 4780 2

原创 《UNIX环境高级编程》笔记--解释器文件

所有的UNIX系统都支持解释器文件,这种文件是文本文件,其起始行的形式是:#! pathname [ optional-argument ]常见的解释器文件以下列行开始:#! /bin/shpathname通常是绝对路径名,对它不进行什么特殊的处理。内核使调用exec函数的进程实际执行的并不是该解释器文件,而是该解释器文件的第一行中pathname所指定的文件。一定要将解释器文

2013-11-24 11:24:49 3414 5

原创 《UNIX环境高级编程》笔记--更改用户ID和组ID

在unix系统中,特权是基于用户和组ID的,当程序需要增加特权,或需要访问当前并不允许访问的资源时,我们需要更换自己用户ID或组ID,使的新ID具有合适的特权或访问权限。与此类似,当程序需要降低其特权或阻止对某些资源的访问时,也需要更换用户ID或组ID,从而使新ID不具有相应特权或访问这些资源的能力。可以用setuid函数设置实际用户ID和有效ID,与此类似,可以使用setgid函数设

2013-11-17 17:20:28 2829

原创 《UNIX环境高级编程》笔记--exec系列函数

使用fork函数创建子进程后,子进程往往都要调用一种exec函数以执行另一个程序,当进程调用一种exec函数时,该进程执行的程序完全替换为新程序,新程序从其main函数开始执行。因为调用exec并不创建新进程,所以前后的进程ID并未改变。exec只是用一个全新的程序替换了当前进程的正文、数据、堆和栈。

2013-11-17 16:32:03 3068

原创 《UNIX环境高级编程》笔记--进程的终止

进程有下面5种正常终止方式:1.在main函数内执行return语句。这等效于调用exit。2.调用exit函数。此函数有ISO C定义,其操作包括调用各种终止处理程序(由atexit函数登记),然后关闭所有的标准IO流等。3.调用_exit或者_Exit函数。ISO C定义_Exit,其目的是为进程提供一种无需运行终止处理程序或信号处理程序而终止的方法。在UNIX系统中,_Exi

2013-11-12 20:58:48 1550

原创 《UNIX环境高级编程》笔记--wait系列函数

1.wait和waitpid函数当一个进程正常或异常终止时,内核就向其父进程发送SIGCHLD信号。因为子进程终止是个异步事件,所以这种信号也是内核向父进程发的异步通知。父进程可以选择忽略信号,或者提供一个该信号的处理函数,对于这种信号默认动作是忽略它。调用wait或waitpid的进程可能会发生什么情况:如果其所有子进程都在运行,则阻塞。如果一个子进程已经终止,正等待父进

2013-11-11 21:34:05 3137

原创 《UNIX环境高级编程》笔记--fork系列函数

1.fork函数一个现有的进程可以调用fork函数创建一个新的子进程。#include pid_t fork(void); //子进程返回0,父进程返回子进程ID,出错返回-1。关于fork函数的常规用法这边不说了,下面说明下父子进程的文件共享。

2013-11-10 15:33:20 3677

转载 C语言中 float double在内存中的存储

本文转载于:http://wenku.baidu.com/link?url=ARfMiXVHCwCZJcqfA1gfeVkMOj9RkLlR9fIexbgs9gDdV8rIS48A1_xe1y6YgXnSlpof5pKKJbjScy1StbVdiUWARuAYUIYiyHeTIIhVaz3 C语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数

2013-11-06 11:35:17 11451

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

每个进程都有一组资源限制,其中一些可以使用getrlimit和setrlimit函数进行查询和修改。#include int getrlimit(int resource, struct rlimit *rptr);int setrlimit(int resource, const struct rlimit *rptr);两个函数返回值:如成功返回0,出错则返回非0值。

2013-11-02 18:52:41 4480 1

哈弗曼编码实现文件压缩

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

2014-09-07

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

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

2009-04-13

空空如也

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

TA关注的人

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