#include <> #define USER_BUF_SIZE 200 #define MAX_USER_NUM 10000000 // 号段信息 typedef struct { char SegNo[10]; char AreaNo[10]; char Addr[20];//GBK 编码,一个汉字占两个字节 char Kind[24]; //GBK 编码,一个汉字占两个字节 int NextNo; }SegmentInfo; // 用户号段信息双向列表 typedef struct SegNode { SegmentInfo *Segment; struct SegNode *Prev; struct SegNode *Next; }SegmentNode; typedef SegmentNode *SegmentList; // 百家姓信息 typedef char Surname[3];//GBK 编码,一个汉字占两个字节 typedef struct { char PhoneNo[14]; char Name[10]; char Addr[16]; char Kind[24]; }UserInfo;// 结构体大小 64 字节// 生成用户信息的线程和写用户信息的线程之间的共享空间 typedef struct { UserInfo User[USER_BUF_SIZE]; int CreateItemNum; int WriteItemNum; int OccupySize; int NextIn; int NextOut; pthread_mutex_t Mutex; pthread_cond_t CreateCond; pthread_cond_t WriteCond; }UserBuf; #include <> #define USER_BUF_SIZE 200 #define MAX_USER_NUM 10000000 // 号段信息 typedef struct { char SegNo[10]; char AreaNo[10]; char Addr[20];//GBK 编码,一个汉字占两个字节 char Kind[24]; //GBK 编码,一个汉字占两个字节 int NextNo; }SegmentInfo; // 用户号段信息双向列表 typedef struct SegNode { SegmentInfo *Segment; struct SegNode *Prev; struct SegNode *Next; }SegmentNode; typedef SegmentNode *SegmentList; // 百家姓信息 typedef char Surname[3];//GBK 编码,一个汉字占两个字节 typedef struct { char PhoneNo[14]; char Name[10]; char Addr[16]; char Kind[24]; }UserInfo;// 结构体大小 64 字节// 生成用户信息的线程和写用户信息的线程之间的共享空间 typedef struct { UserInfo User[USER_BUF_SIZE]; int CreateItemNum; int WriteItemNum; int OccupySize; int NextIn; int NextOut; pthread_mutex_t Mutex; pthread_cond_t CreateCond; pthread_cond_t WriteCond; }UserBuf; 文件: view plaincopy to clipboardprint? #include <> #include <> #include <> #include <> #include "" SegmentList segmentList; Surname surname[100]; UserBuf *shareBuf; void ReadInitFile() { FILE *fSegment = NULL; FILE *fSurname = NULL; unsigned long segmentFilePos = 0; unsigned long readBufPos = 0; unsigned long readLen = 0; char readBuf[10 * 1024 + 1]= {0}; char *pRec = NULL; ch
循环队列 来自淘豆网www.taodocs.com转载请标明出处.