wintree的专栏

专注于Linux系统编程,网络编程,高性能服务器技术,c/c++技术学习

深入浅出---unix多进程编程之wait()和waitpid()函数

Wait和waipid函数   当一个进程正常或异常终止的时候,内核就像其父进程发送SIGCHLD信号,因为子进程是个一步事件,所以这种信号也是内核系那个父进程发的异步通知。父进程可以选择忽略该信号,或者提供一个该信号发生时即被调用执行的函数。对于这种信号的系统默认动作是忽略它。 现在要知道...

2011-11-21 23:43:57

阅读数:35807

评论数:15

深入浅出--UNIX多进程编程之fork()函数

0前言 上周都在看都在学习unix环境高级编程的第八章——进程控制。也就是这一章中,让我理解了unix中一些进程的原理。下面我就主要按照进程中最重要的三个函数来进行讲解。让大家通过阅读这一篇文章彻底明白进程这点事。希望对大家有所帮助。 1进程环境          在学习进程之前...

2011-11-21 11:58:36

阅读数:17145

评论数:14

作为程序员,我们更应该《挖一口属于自己的井 》

今天看到一篇很有道理的一篇文章,分享给大家。不论在什么行业,尤其是在我们这个吃年轻饭的的IT行业,尤其是敲代码的程序员。我们就应该要记住下面的这个道理。   两个和尚住在隔壁,所谓隔壁就是隔壁那座山,他们分别住在相邻的两座山上的庙里。两座山之间有一条溪,这两个和尚每天都会在同一时间下山去溪边挑...

2011-11-19 22:48:52

阅读数:4467

评论数:12

unix环境高级编程-5.4-缓冲

提到缓冲这个概念,大家都知道非常熟悉不过了,我们在写程序的时候,比如java,C++都会涉及到一些缓冲的概念,那么到底缓冲有什么好的作用的。   其实缓冲在unix的操作系统里,就是为了减少read和write的调用次数。在第三章中,对不同缓冲区的长度设置,执行IO所要的cpu时间量是不一样的...

2011-11-01 00:13:49

阅读数:1970

评论数:0

unix网络编程值setsockopt函数

http://topic.csdn.net/t/20041126/20/3592436.html 写出我在网络编程中的一点心得体会,希望对他(^_^也对大家)有帮助: 1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用 closesocket...

2011-11-29 23:32:26

阅读数:1554

评论数:0

unix网络编程之利用select 实现群发的功能

首先 运行在linux 运行gcc -g -o select select.c/ *******select.c*********/ / *******Using select() for I/O multiplexing */ #include #include #include #inc...

2011-11-29 22:51:02

阅读数:2536

评论数:1

fork两次如何避免僵尸进程

曾经觉得费解,温故知新一下: /*g++ -o New0001 New0001.cpp */ #include #include #include #include int main(void) {    pid_t pid;     if ((pid = fork())...

2011-11-22 20:53:23

阅读数:1196

评论数:0

初学者:ACE学习

转载自:初学者:ACE学习   ACE的配置(window) (使用VC++)安装: 1. 从网上下载相应源码――――根据提示编辑config.h文件,并放置在ACE_ROOT\ace 目录下。 2. 用VC打开ACE_ROOT\ace\ace.dsw ,并编译,编译后会在ACE_ROO...

2011-11-22 16:37:54

阅读数:3141

评论数:0

linux:vi 替换命令

vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。   :s/vivian/sky/ 替换当前行第一个 vivian 为 sky   :s/vivian/sky/g 替...

2011-11-22 10:15:03

阅读数:954

评论数:0

ACE_Message_Block功能简介

ACE_Message_Block在Ace中用来表示消息的存放空间,可用做网络通信中的消息缓冲区,使用非常频繁,下面将在如下方简单的介绍一下ACE_Message_Block相关功能。 创建消息块 释放消息块 从消息块中读写数据 数据的拷贝 其它常用函数 1。创建消息块 创建消息...

2011-11-21 16:28:15

阅读数:1072

评论数:0

C++中new_handler

在过去或者传统的模式中,当operator new不能满足一个内存分配请求的时候,它会返回一个空指针,但是现在如果operator new不能满足一个内存分配请求的时候,会抛出一个异常,这个时候我们可不可以自己定制处理策略呢?这正是new_handler的作用所在,具体情况在后面详细道来    ...

2011-11-20 23:56:28

阅读数:2433

评论数:0

什么是句柄?为什么会有句柄?HANDLE

从广义上,能够从一个数值拎起一大堆数据的东西都可以叫做句柄。句柄的英文是"Handle",本义就是"柄",只是在计算机科学中,被特别地翻译成"句柄",其实还是个"柄"。从一个小东西拎起一大堆东西,这难道不像是个&quo...

2011-11-20 20:28:43

阅读数:1740

评论数:0

C语言编译全过程

编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。     编译的完整过程:C源程序-->预编译处理(.c)-->编译、优化程序(.s、.a...

2011-11-19 16:47:51

阅读数:1268

评论数:1

unix环境高级编程-undefined reference to 'pthread_create'问题解决

笔者一直在学习unix环境高级编程。第十一章为线程编程。第一个程序就是打印线程ID。程序如下: #include "apue.h" #include pthread_t ntid; void printids(const char* s) { pid_t...

2011-11-18 19:36:30

阅读数:7795

评论数:2

linux 下安装ACE

首先安装这个东西,网络上很多,百度google 一大把,我就找个比较有代表性的贴在下边吧。主要是想说一下我遇到的问题 首先把文件解压,我解压在了/Software文件夹下,解压后会出现一个名字为ACE_wrappers的文件夹。这样所有ACE的源文件都在/Software/ACE_wrapper...

2011-11-14 23:58:56

阅读数:1828

评论数:0

unix环境高级编程-第七章-进程环境

这两天都没写博客,主要是我想改变一下方法吧。不想一节节的读了,我想把一个整章看好了,然后进行思考,然后再进行编辑写在博客里。我觉得这样可以省的时间来思考,写程序。把每章中最主要的部门拿出来。算是第二遍复习。可以加深我的印象吧。 1进程终止 进程正常终止: view plaincopy...

2011-11-14 12:49:51

阅读数:3476

评论数:11

unix环境高级编程-7-进程环境

这两天都没写博客,主要是我想改变一下方法吧。不想一节节的读了,我想把一个整章看好了,然后进行思考,然后再进行编辑写在博客里。我觉得这样可以省的时间来思考,写程序。把每章中最主要的部门拿出来。算是第二遍复习。可以加深我的印象吧。 1进程终止 进程正常终止: #include void exi...

2011-11-13 18:15:24

阅读数:949

评论数:0

unix环境高级编程-5.9-二进制I/O

上一节,我们知道对于读或者写都是一个一个字节,或者一行行的。 getc和putc是通过字节来处理。fputs和fgets是一行的,但是遇到null就停止了。 下面介绍fread和fwrite函数 原型: #include size_t fread(void* restrict ptr,s...

2011-11-08 22:43:11

阅读数:945

评论数:0

unix环境高级编程-5.8-标准I/O的效率。

使用上一节所述的函数。我们能对标准的I/O的效率有所了解。 请看下面的程序 #include "apue.h" int main(void) { int c; while((c=getc(stdin))!=EOF) { if(putc(c,stdout)==...

2011-11-06 21:57:29

阅读数:1009

评论数:0

unix环境高级编程-5.7-每行一次I/O

下面两个函数提供每次输入一行的功能   #include char *fgets(char * restrict buf,int n,FILE* restrict fp); char* gets(char* buf);   两个返回值:若成功返回buf,若已达到文件结尾或出错则返回NU...

2011-11-06 19:00:13

阅读数:792

评论数:0

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