?? common.h
字號:
/*
* Copyright (c) 2002, 南京聯創系統集成股份有限公司綜合結算產品部
* All rights reserved.
*
* 文件名稱:common.h
* 摘 要:聲明傳輸程序所用到的數據結構和宏及函數申明
*
* 當前版本:
* 作 者:馮亮(fengl@lianchuang.com)
* 完成日期:
*/
#ifndef _COMMON_H_
#define _COMMON_H_
#include <errno.h>
#include "basefun.h"
#define QLEN 500
#define BUF_SIZE 8192
#define SOCK_TIME_OUT 600
#define STRING_LEN 1024
#define MAX_PATH 255
#define DATA_LENGTH 10240
#define FILE_NAME_LEN 255
#define INFO_LEN 255
extern char *sys_errlist[];
/*數據的傳輸結構*/
struct S_DataInfo
{
/*傳輸類型: 0:PUTFILE -- 上傳文件 1:GETFILE -- 下載文件*/
int iTransferType;
/*遠端路徑*/
char chRemotePath[MAX_PATH];
/*遠端最終路徑*/
char chRemoteTargetPath[MAX_PATH];
/*遠端備份路徑*/
char chRemoteBackupPath[MAX_PATH];
/*文件的過濾條件*/
char chFileFilter[MAX_PATH];
/*當前文件位置*/
long lFilePos;
/*1--壓縮;0--不壓縮*/
int iCompress;
/*返回狀態:0--無文件,1--存在文件,2--文件發送完成 -1 ---失敗*/
int iStatus;
/*錯誤信息*/
char chErrorMsg[INFO_LEN];
/*文件名*/
char chFileName[FILE_NAME_LEN];
/*原始文件長度*/
long lFileLen;
/*壓縮后文件長度*/
long lZipSize;
/*數據塊長度*/
long lDataLen;
/*控制信息校驗值*/
long lCheckValue;
/*預留字段1*/
int iReserved1;
/*預留字段2*/
int iReserved2;
/*數據塊*/
char chData[DATA_LENGTH];
};
/*下載文件*/
#define CMD_GET 1
/*上傳文件*/
#define CMD_PUT 0
/*狀態 錯誤*/
#define STATUS_ERROR 0
/*無文件*/
#define STATUS_NOFILE 1
/*存在文件*/
#define STATUS_FILEEXIST 2
/*現在正在發送文件*/
#define STATUS_SENDFILE 3
/*這是最后的文件塊*/
#define STATUS_LASTDATA 4
/*文件發送完成*/
#define STATUS_FINISH 5
/*結束本次會話*/
#define STATUS_BYBY 6
/*請求發送信息*/
#define STATUS_FILEINFO 7
#define COMPRESS 1
#define NOT_COMPRESS 0
#define MODE_READ 0
#define MODE_WRITE 1
struct GOBALINFO
{
/*程序目錄*/
char chExePath[MAX_PATH];
/*配置文件名*/
char chConfigFile[MAX_PATH];
/*日志文件目錄*/
char chLogPath[MAX_PATH];
/*告警文件目錄*/
char chAlertPath[MAX_PATH];
/*移動標志*/
int iMoveFlag;
/*偵聽端口*/
int iListenPort;
/*是否為守護進程*/
int iDaemonFlag;
/*進程運行標記*/
int iRunFlag;
/*程序調試標志*/
int iDebugFlag;
/*備份標志*/
int iBackupFlag;
};
struct GOBALMUTEX
{
/*寫日志互斥*/
pthread_mutex_t LogMutex;
/*寫告警互斥*/
pthread_mutex_t AlertMutex;
/*搜索文件互斥*/
pthread_mutex_t SearchFileMutex;
};
extern struct GOBALINFO GobalInfo;
extern struct GOBALMUTEX GobalMutex;
extern int errno;
/*函數原型申明*/
void Msg(const char *chMsg, ...);
void Log(const char *chLog, ...);
void GetFullName(struct S_DataInfo *data, char *chFullName);
void print_data(struct S_DataInfo *data);
long GetFileSize(char *chFileName);
int GetSockData(int iSockfd, struct S_DataInfo *data);
int WriteSockData(int iSockfd, struct S_DataInfo *data);
int TimeWait(int fd, int Mode);
int SearchFile(struct S_DataInfo *data);
int SendFile(int iSockfd, struct S_DataInfo *data, char *chFullName);
int ZipFile(char *chFileName);
int UnZipFile(char *chFileName);
int IsZipFile(char *chFileName);
int DeleteFile(struct S_DataInfo *data);
int ProcessGetConnect(int iSockfd, struct S_DataInfo *data);
int SendFileInfo(int iSockfd, struct S_DataInfo *data);
int ProcessPutConnect(int iSockfd, struct S_DataInfo *data);
int GetFileInfo(int iSockfd,struct S_DataInfo *data);
int SaveFile(struct S_DataInfo *data,char *chLocalDir);
int CheckData(struct S_DataInfo *data);
int SetCheckValue(struct S_DataInfo *data);
int FileToTemp(char *chSrcPath,char *chSrcFile,char * chDescPath,char *chDestFile);
int TempToFile(const char *chSrcPath, const char *chSrcFile, const char *chDescPath, char *chDestFile);
int FileToTargetPath(struct S_DataInfo *data);
int BackupFile(struct S_DataInfo *data);
#endif//_COMMON_H_
//---------------------------------------The End-----------------------------------
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -