
apue
文章平均质量分 75
crazy_programmer_p
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
网络进程间通信函数一
inet_ntop与 inet_pton:转自:点击打开链接转载 2014-07-17 09:00:22 · 638 阅读 · 0 评论 -
unix 环境高级编程 文件对象互斥flockfile()与funlockfile()
apue上面p325对wenj原创 2014-07-07 10:50:00 · 4437 阅读 · 0 评论 -
unix 环境高级编程 线程私有数据
线程私有数据: 对于这个名词,转载 2014-07-07 14:35:51 · 458 阅读 · 0 评论 -
unix 线程私有数据
http://baike.baidu.com/view/974776.htm http://www.blogjava.net/tinysun/archive/2010/05/29/322210.html 在单线程程序中,函数经常使用全局变量或静态变量,这是不会影响程序的正确性的,但如果线程调用的函数使用全局变量或静态变量,则很可能引起编程错误,因为这些函数使用的全局变量和静态变量转载 2014-07-07 14:57:53 · 583 阅读 · 0 评论 -
unix 环境高级编程 线程取消点
取消线程 取消操作允许线程请求终止其所在进程中的任何其他线程。不希望或不需要对一组相关的线程执行进一步操作时,可以选择执行取消操作。例如,用户请求关闭或退出正在运行的应用程序。另一个示例是完成由许多线程执行的任务。其中的某个线程可能最终完成了该任务,而其它线程还在继续运行。由于正在运行的线程此时没有任何用处,因此取消这个线程。取消点 仅当取消操作安全时才应取转载 2014-07-07 16:32:58 · 788 阅读 · 0 评论 -
unix 环境高级编程 勘误
The following errors were fixed in the second printing.Page 413, third paragraph. If a signal is related to an expiring timer, it is sent to an arbitrary thread, not necessarily to the thread th转载 2014-07-04 21:43:17 · 527 阅读 · 0 评论 -
标准I/O和无缓冲I/O
首先,先稍微了解系统调用的概念: 系统调用,英文名system call,每个操作系统都在内核里有一些内建的函数库,这些函数可以用来完成一些系统系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序,如果没有系统调用和内核函数,用户将不能编写大型应用程序,及别的功能,这些函数集合起来就叫做程序接口或应用编程接口(Application Prog转载 2014-07-09 10:05:52 · 644 阅读 · 0 评论 -
unix 环境高级编程 线程一 创建
线程的概念: 在早期的操作系统当中,是没有线程的gainia原创 2014-07-05 21:19:26 · 615 阅读 · 0 评论 -
Linux 多进程与多线程
多线程程序里不准使用forkUNIX上C++程序设计守则3准则3:多线程程序里不准使用fork在多线程程序里,在”自身以外的线程存在的状态”下一使用fork的话,就可能引起各种各样的问题.比较典型的例子就是,fork出来的子进程可能会死锁.请不要,在不能把握问题的原委的情况下就在多线程程序里fork子进程.能引起什么问题呢?那看看实例吧.一执行下面的代码,在转载 2014-07-07 20:21:49 · 500 阅读 · 0 评论 -
信号量函数知多少
信号量函数由semget、semop、semctl三个函数组成。下面的表格列出了这三个函数的函数原型及具体说明。1. semget函数原型semget(得到一个信号量集标识符或创建一个信号量集对象)所需头文件#include #include #include 函数说明得到一个信号量集标识符转载 2014-07-11 16:48:01 · 513 阅读 · 0 评论 -
Linux下利用消息队列实现进程间通信
一、什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制。Linux用宏MSGMAX和MSGMNB来限制一条消息的最大长度和一个队列的最大长度。二、在Li转载 2014-07-12 11:17:23 · 2880 阅读 · 0 评论 -
unix下使用共享内存实现进程间通信
一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一样。而如果某个进程向共享内存写入数据,所做的改动将立即影响到转载 2014-07-12 12:01:14 · 1517 阅读 · 0 评论 -
unix 环境高级编程 线程三 同步属性
互斥量属性:原创 2014-07-06 10:05:48 · 513 阅读 · 0 评论 -
unix 环境高级编程 线程二 同步
互斥量: 此乃一把锁原创 2014-07-05 23:54:15 · 485 阅读 · 0 评论 -
unix 环境高级编程之 system函数
#include #include #include #include int system(const char* cmdstring){ pid_t pid; int status; struct sigaction ignore,saveintr,savequit; sigset_t chldmask,savemask; if(cmdstri原创 2014-07-04 09:52:41 · 740 阅读 · 0 评论 -
SO_REUSEADDR的用法
如下演示程序,程序目的是:先准备好一个ServerSocket,监听端口8880,然后建一个ClientSocket(受限于业务需要,必须在ServerSocket准备好后再建Client),也必须绑定同一端口8880,问题是:为什么对ClientSocket bind(port 8880)时,会报错EADDRINUSE?我已经启用了SO_REUSEADDR。为了方便于大家试运转载 2014-07-17 16:46:23 · 560 阅读 · 0 评论 -
什么是socket(网络大神略过,网络小白比如我进)
什么是socket Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。 Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的Socket数据传输是转载 2014-07-17 08:17:21 · 497 阅读 · 0 评论 -
网络进程间通信函数二
bind:服务器端地址绑定函数在套接口中,一个套接字只是用户程序与内核交互信息的枢纽,它自身没有太多的信息,也没有网络协议地址和端口号等信息,在进行网络通信的时候,必须把一个套接字与一个地址相关联,这个过程就是地址绑定的过程。许多时候内核会我们自动绑定一个地址,然而有时用户可能需要自己来完成这个绑定的过程,以满足实际应用的需要,最典型的情况是一个服务器进程需要绑定一个众所周知的地址或端转载 2014-07-17 11:48:13 · 495 阅读 · 0 评论 -
套接字选项之struct linger
struct linger 用法Linux下tcp连接断开的时候调用close()函数,有优雅断开和强制断开两种方式。那么如何设置断开连接的方式呢?是通过设置socket描述符一个linger结构体属性。linger结构体数据结构如下: #include struct linger { int l_onoff; int l_linger;};转载 2014-07-17 16:22:05 · 480 阅读 · 0 评论 -
《unix 环境高级编程》之带外数据
定义带 外 数据 想 像一下在银行人们排起队等待处理他们的帐单。在这个队伍中每个人最后都会移到前面由出纳员进行服务。现在想像一下一个走入银行,越过整个队伍,然后用枪抵 住出纳员。这个就可以看作为带 外 数据 。这个强盗越过整个队伍,是因为这把枪给了他凌驾于众人的权力。出纳员也会集中注意力于这个强盗身上,因为他知道当前 的形势是很紧急的。相应的,一个连接的流式套接口上的带 外 数转载 2014-07-17 18:54:02 · 605 阅读 · 0 评论 -
time _wait 状态
TIME_WAIT状态原理----------------------------通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态。客户端主动关闭连接时,会发送最后一个ack后,然后会进入TIME_WAIT状态,再停留2个MSL时间(后有MSL的解释),进入CLOSED状态。下图是以客户端主动关闭连接为例,说明这一过程的。转载 2014-07-17 19:04:19 · 432 阅读 · 0 评论 -
unix 环境高级编程之信号一 概念
信号概念:原创 2014-07-03 08:52:58 · 520 阅读 · 0 评论 -
unix 环境高级编程 信号二 可重入函数与不可重入函数
b原创 2014-07-03 11:28:09 · 794 阅读 · 0 评论 -
unix 环境高级编程 信号三态
信号的三态指的是产生,未决,dida原创 2014-07-03 12:22:05 · 516 阅读 · 0 评论 -
unix 环境高级编程 信号函数杂记一
kill函数:原创 2014-07-03 21:39:05 · 608 阅读 · 0 评论 -
unix 环境高级编程之sigsuspend函数
sig_atmo原创 2014-07-04 00:44:28 · 718 阅读 · 0 评论 -
getaddrinfo函数的说明
getaddrinfo()函数详解 1. 概述IPv4中使用gethostbyname()函数完成主机名到地址解析,这个函数仅仅支持IPv4,且不允许调用者指定所需地址类型的任何信息,返回的结构只包含了用于存储IPv4地址的空间。IPv6中引入了getaddrinfo()的新API,它是协议无关的,既可用于IPv4也可用于IPv6。getaddrinfo函数能够处理名字到地址以及服转载 2014-07-14 17:51:53 · 539 阅读 · 0 评论