自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

转载 Posix多线程编程学习笔记(一)—线程基础(1)

一.什么是线程       在一个程序里的多个执行路线就叫做线程。更准确的定义是:线程是“一个进程内部的一个控制序列”。       典型的unix进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程以后,在程序设计时可以把进程设计成在同一时刻能够做不止一件事,每个线程处理各只独立的任务。 二.线程的优点(1)       通过为每种事件类型的处理分配

2009-06-30 17:00:00 547

转载 UNIX环境高级编程读书笔记(九)—进程关系 (1)

 一、进程组1.名称::getpgrp功能:得到进程的进程组id头文件:#include 函数原形:pid_t getpgrp(void);参数:无返回值:调用进程的进程组ID

2009-06-30 15:53:00 626

转载 UNIX环境高级编程读书笔记(九)—进程关系 (2)

二、会话4.名称::setsid功能:建立一个会话头文件:#include 函数原形:pid_t setsid(void);参数:无返回值:若成功则返回进程组ID,若出错则返回-1。

2009-06-30 15:53:00 511

转载 UNIX环境高级编程读书笔记(八)—进程控制 (3)

 四、执行新程序9.名称::exec功能:执行一个新程序头文件:#include 函数原形: int execl(const char *path,const char *arg,…);int execlp(const char *file,const c

2009-06-30 15:52:00 489

转载 函数fork与vfork的区别与联系详解

创建一个新进程的方法只有由某个已存在的进程调用fork()或vfork(),当然某些进程如init等是作为系统启动的一部风而被内核创建的。1.fork函数介绍#include #include pid_t fork (void );正确返回:父进程中返回子进程的进程号;子进程中返回0;(单调用双返回函数)错误返回:-1;子进程是父进程的一个拷贝。具体说,子进程从父进程那得到了数据段和堆栈段

2009-06-30 14:41:00 546

转载 UNIX环境高级编程读书笔记(八)—进程控制 (2)

6.名称::vfork功能:创建一个进程头文件:#include #include 函数原形: pid_t vfork(void);参数:无返回值:进程id.   

2009-06-30 14:35:00 428

转载 UNIX环境高级编程读书笔记(八)—进程控制 (1)

一、进程ID1.名称::getpid功能:获得进程id. 头文件:#include 函数原形: pid_t getpid(void);参数:无返回值:进程id.     

2009-06-30 14:26:00 441

转载 UNIX环境高级编程读书笔记(六)—时间和日期 (1)

 一.文件的时间对每个文件保存三个时间字段,它们是: 1.名称::utime功能:修改文件的存取和修改时间头文件:#include #include 函数原形: int utime(const char *filename,const st

2009-06-30 14:23:00 406

转载 UNIX环境高级编程读书笔记(六)—时间和日期 (2)

4.名称::gmtime/localtime功能:transform date and time头文件:#include 函数原形: struct tm *gmtime(const time_t *calptr)struct tm *locatltime(cons

2009-06-30 14:23:00 457

原创 UNIX环境高级编程读书笔记(五)—系统文件和信息 (2)

二、ect/group文件4.名称::getgrgid/getgrnam功能:get group file entry头文件:#include #include 函数原形: struct group *getgrnam(const char *name);

2009-06-30 14:22:00 620

转载 UNIX环境高级编程读书笔记(五)—系统文件和信息 (1)

 一、etc/passwd文件 1.名称::getpwuid/getpwnam功能:Getpassword file entry头文件:#include 函数原形: struct passwd *getpwuid(uid_t uid);struct p

2009-06-30 14:21:00 506

转载 UNIX环境高级编程读书笔记(四)—出错处理

1.名称::perror功能:该函数在stderr流中输出错误信息头文件:#include 函数原形: void perror(const char *message)参数:message  返回值:无

2009-06-30 14:20:00 485

原创 UNIX环境高级编程读书笔记(二)—目录和文件 (3)

六、文件的属性11名称:stat/fstat/lstat目标: 得到文件的属性。头文件:#include #include #include 函数原形:int stat(const char *file_name,struct stat *buf)i

2009-06-30 14:19:00 472

原创 UNIX环境高级编程读书笔记(二)—目录和文件 (4)

13.名称:umask目标: 为进程文件方式创建屏蔽字头文件:#include #include 函数原形:mode_t umask(mode_t cmask);参数: cmask返回值: 以前的文件

2009-06-30 14:19:00 647

转载 UNIX环境高级编程读书笔记(二)—目录和文件 (2)

四、文件的链接6.名称:link目标: 创建一个文件的新链接头文件:#include 函数原形:int link(const char *oldpath,const char *newpath);参数: oldpath    原始链

2009-06-30 14:17:00 1098

原创 UNIX环境高级编程读书笔记(二)—目录和文件(1)

一、目录的打开和关闭 1. 名称:opendir目标: 打开一个目录。头文件:#include #include 函数原形:DIR *opendir(const char *name)参数: name      目录名

2009-06-30 14:15:00 875

转载 UNIX环境高级编程读书笔记(一)—文件IO (2)

5.名称:write目标: 将内存中的数据写入文件。头文件:#include 函数原形:size_t write(int fd, const void *buf, size_t count)参数: fd       文件描述符

2009-06-30 14:14:00 684

转载 UNIX环境高级编程读书笔记(一)—文件IO (1)

 一、打开/关闭文件1 名称:open目标: 打开一个文件。头文件:#include #include #include 函数原形:int open(const char * pathname,int flags);int open(const c

2009-06-30 14:11:00 529

原创 UNIX环境高级编程读书笔记(七)—进程环境 (3)

8. 名称::unstenv功能:删除环境变量头文件:#include 函数原形: void unstenv(const char *name);参数:name  变量名返回值:无 

2009-06-30 12:46:00 477

原创 UNIX环境高级编程读书笔记(七)—进程环境 (2)

四、进程空间3.名称::malloc/calloc/realloc/free功能:allocate and free dynamic memory头文件:#include 函数原形: void *calloc(size_t nmemb,size_t size

2009-06-30 12:45:00 510

转载 UNIX环境高级编程读书笔记(七)—进程环境 (1)

 一、主要内容:1.进程如何启动和退出的(main函数,初启函数,exit函数,atexit函数)。(1).Linux创建进程的唯一方法就是利用shell的fork系统调用。(2).编译C程序时,连接器会将初启函数和main函数一起装入内存形成可执行文件,指定该初起函数为该初启函数的开始执行点。(3).初启函数负责从UNIX SHELL获得命令行参数和系统的环境变量,将它们组织

2009-06-30 12:44:00 520

原创 什么是errno

errno是什么?为防止和正常的返回值混淆,系统调用并不直接返回错误码,而是将错误码放入一个名为errno的全局变量中。如果一个系统调用失败,你可以读出errno的值来确定问题所在。errno不同数值所代表的错误消息定义在errno.h中,你也可以通过命令"man 3 errno"来察看它们。需要注意的是,errno的值只在函数发生错误时设置,如果函数不发生错误,errno的值就无定义,并不会被置

2009-06-30 10:05:00 803

转载 bind9配置精讲(三)

原贴位置:http://shcore.com.cn/gugong/gugong/html/bind9.html设定子网域授权 到这里,您所需要具备的 DNS 技巧相信已经足够应付普通网络的需要了。但如果您的网络非常庞大,而且 DNS 系统比较复杂,或是您有兴趣知道 Internet 上是如何进行 DNS 授权的话,那您或许需要了解一下 DNS 的子网域 (sub zone) 授权设定。 这个问题不

2009-06-26 18:18:00 1650

转载 bind9配置精讲(二)

原贴位置:http://shcore.com.cn/gugong/gugong/html/bind9.html重新启动 named 当您以为所有设定档都设定好之后,最想做的事情莫过于要测试一下啦。但在测试之前,我们还要重新启动 named ,否则,您查询出来的还是旧数据。聪明的您或许已经知道使用如下命令来重新启动DNS 服务了吧: service named restart 然而,作为一个有经验的

2009-06-26 18:17:00 7480

转载 bind9配置精讲(一)

原贴位置:http://shcore.com.cn/gugong/gugong/html/bind9.html,不过好像也是转贴的。全文超过二万字。---------------------------------------------------------------------------------架设 DNS前面所介绍的服务器服务大多是用在内部网络环境中的,不过,以现代的情况和未来的趋

2009-06-26 18:16:00 6027

转载 虚拟地址、线性地址和物理地址之间的关系

1.内核代码和数据的地址对于Linux 0.12内核代码和数据来说,在head.s程序的初始化操作中已经把内核代码段和数据段都设置成为长度为16MB的段。在线性地址空间中这两个段的范围重叠,都是从线性地址0开始到地址0xFFFFFF共16MB地址范围。在该范围中含有内核所有的代码、内核段表(GDT、IDT、TSS)、页目录表和内核的二级页表、内核局部数据以及内核临时堆栈(将被用作第1个任务,即

2009-06-26 15:02:00 4603

转载 探索 Linux 内存模型

 探索 Linux 内存模型2008年11月10日 星期一 04:07理解 Linux 设计的第一步  级别: 初级Vikram Shukla (vikshukl@in.ibm.com), 软件工程师, IBM在这篇 L

2009-06-26 14:56:00 794

转载 我理解的逻辑地址、线性地址、物理地址和虚拟地址

我理解的逻辑地址、线性地址、物理地址和虚拟地址(补充完整了)2008年11月10日 星期一 01:37要过年了,发个年终总结贴,只是个人理解,不包正确哈。本贴涉及的硬件平台是X86,如果是其它平台,嘻嘻,不保证能一一对号入座,但是举一反三,我想是完全可行的。一、概念物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。—

2009-06-26 14:46:00 785

空空如也

空空如也

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

TA关注的人

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