linux programming
thewayma
这个作者很懒,什么都没留下…
展开
-
Linux---signal(usr mode application) 编程
Linux---signal(usr mode application) 编程##uid_t getuid(void);uid_t geteuid(void);组ID,有效组IDuid_t getgid(void);uid_t getegid(void);信号不可靠的signalAPI#void (*signal)(int sig,void (*func)(int)))(int)typedef v原创 2008-09-30 21:14:00 · 959 阅读 · 0 评论 -
Linux I/O 模型---I/O复用:Select和Poll函数
Select和Poll函数在前一章中,我们遇到一个问题就是,客户端阻塞在了从标准输入中读取数据,与此同时,服务器由于某种原因要求关闭连接给客户端发送了一个FIN,而客户端只有从标准输入读到数据返回后才能知道连接已关闭。在这一章中介绍的I/O复用可以很好的解决这个问题。1.I/O模型a. Unix下共有五种I/O模型阻塞I/O非阻塞I/OI/O复用(sel转载 2009-07-28 14:27:00 · 3088 阅读 · 0 评论 -
tcp要点学习-基础概念
Author : Kevin Lynx TCP是TCP/IP协议簇中传输层上的一种网络协议,它是一种面向连接的、可靠的协议。为了提供这种可靠性,TCP实现了各种有效的机制、算法。为了从一种宏观的角度去了解这个协议,这里先大致地提一下与之相关的概念。 1. 什么是‘面向连接的’? 引用中的概念: 面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)转载 2009-07-22 15:00:00 · 622 阅读 · 0 评论 -
linux网络服务器模型
Linux系统网络服务器模型主要有两种:并发服务器和循环服务器。所谓并发服务器就是在同一个时刻可以处理来自多个客户端的请求;循环服务器是指服务器在同一时刻指可以响应一个客户端的请求。而且对于TCP和UDP套接字,这两种服务器的实现方式也有不同的特点。 1、TCP循环服务器:首先TCP服务器接受一个客户端的连接请求,处理连接请求,在完成这个客户端的所有请求后断开连接,然后再接受下一个客户端的请求转载 2009-07-20 23:28:00 · 733 阅读 · 0 评论 -
在用户空间编程使用linux内核链表list,hlist宏定义和操作
在用户空间编程使用linux内核链表list,hlist宏定义和操作.linux内核中的list_head和hlist_head/hlist_node是将数据结构串起来成为链表的两个重要链表构造工具。利用他们和其对应的宏定义,可以非常容易地将数据构成链表,进行链表的各种操作,和数据查询。在内核中,他们使用的十分广泛。这些链表操作宏定义具有通用性,和具体数据结构无关。利用他们转载 2008-12-15 16:50:00 · 1573 阅读 · 1 评论 -
使用__attribute__处理对齐问题
GNU C扩展的__attribute__ 机制被用来设置函数、变量、类型的属性,其用得较多的是处理字节对齐的问题。__attribute__ 的语法为:[code]__attribute__ ((语法列表))[/code]参数aligned(number) [number为最小对齐的字节数]是用得较多的一个。另一个是参数packed 表示“使用最小对齐”方式,即对变量是字节对齐,对于转载 2008-12-14 16:22:00 · 929 阅读 · 1 评论 -
linux process fork related
to demonstrate the underlying principle of the unix api fork and fork-related contents(wait waitpid) etc, i wrote these two pieces of code as following , both of which repersented my personal understa原创 2008-11-23 13:41:00 · 594 阅读 · 0 评论 -
linux中wait系统调用
系统中的僵尸进程都要由wait系统调用来回收,下面就通过实战看一看wait的具体用法:wait的函数原型是:#include /* 提供类型pid_t的定义 */#include pid_t wait(int *status);进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进原创 2008-11-23 13:15:00 · 696 阅读 · 0 评论 -
put struct list_head and struct hlist_head into the application
#include #include #include "list.h"//open email.txt with the help of the struct list_head and struct hlist_head of the kernel#define HASH_NUM 1024 //number of the hash table#define STRING_NUM 1024LIST原创 2009-01-01 22:16:00 · 1217 阅读 · 0 评论 -
Linux/Unix环境下的Make和Makefile详解
无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或makeinstall。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。而且如此多的源文件,如果每转载 2009-09-25 19:26:00 · 439 阅读 · 0 评论