Linux程式设计之三


hello.so的设计





Linux程式设计-15.同步I/O多重处理
http://www.openchess.org/noitatsko/programming/ (2001-05-26 13:04:00)
同步I/O多重处理(Synchronous I/O Multiplexing)

--------------------------------------------------------------------------------

当我们在同时间需要处理许多I/O时,例如网路伺服器socket,有时候一个一个处理,程式非常难写,这时候可以利用select来达成。

--------------------------------------------------------------------------------

#include
#include
#include
int select(int n, fd_set *readfds, fd_set *writefds,fd_set *exceptfds, struct timeval *timeout);

FD_CLR(int fd, fd_set *set);
FD_ISSET(int fd, fd_set *set);
FD_SET(int fd, fd_set *set);
FD_ZERO(fd_set *set);

FD_ZERO清除所有fd_set。
FD_SET将fd加入fd_set中。
FD_CLR将fd从fd_set中移除。
FD_ISSET检查fd是否属於该fd_set。

struct timeval {
int tv_sec;
int tv_usec;
};


Linux程式设计-16.TarBall
http://www.openchess.org/noitatsko/programming/ (2001-05-26 14:08:00)

我写了一个targz的函数库,专门处理档案安装的事宜,这个函数库在我写的X Corona Package Installer中使用到。它与zlib一起使用。
targz.h
targz.c



--------------------------------------------------------------------------------

typedef struct {
char name[100];
char mode[8];
char uid[8];
char gid[8];
char size[12];
char mtime[12];
char chksum[8];
char typeflag;
char linkname[100];
char magic[6];
char version[2];
char uname[32];
char gname[32];
char devmajor[8];
char devminor[8];
char prefix[155];
} TarEntry;

GNU Tar档案格式



--------------------------------------------------------------------------------

typedef struct {
char * Package;
char * FileName;
char * path;
gzFile fp;
int size;
int totalsize;
int eXPanding;
int mode;
int result;
TarEntry ** NAME;
} TarBall;



--------------------------------------------------------------------------------

TarBall * tgzOpen(char * Filename,char * mode);
开启一个tarball档,档名为Filename。
mode
"r":为读取模式。
"w":为写入模式。



--------------------------------------------------------------------------------

int tgzLookup(TarBall * tgz);
撷取tarball内档案资讯。



共9 页 首页 上一页 [2] [3] [4] [5] [6下一页 尾页>
上一篇: useradd
下一篇: linux上GD库的安装