⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myos.h

📁 可以在linux下使用的ddns的测试程式
💻 H
字号:
#ifndef _MYOS_H
#define _MYOS_H
//------------------------------------------------------------

//#define _WIN
#define _LINUX
//------------------------

#include <sys/types.h>
#include <stdio.h>                                   
#include <assert.h>
#include <fcntl.h>
//#include <io.h>
#include <sys/stat.h>
#include <string.h>
#include "MyType.h"
//#include "dir.h"


#ifdef _WIN
        #include <winsock2.h>
        #define MY_THREAD HANDLE
        #define MY_SOCKET SOCKET
        #define MY_FILE_H HANDLE
        #define MY_CRITICAL CRITICAL_SECTION

        #define INVALID_FD ((HANDLE)(LONG_PTR)-1)
        #define INVALID_SOCK (SOCKET)(~0)

        #define DIR_SEPARATOR "\\"

        typedef DWORD WINAPI (*MY_THREAD_FUNC_TYPE)(LPVOID);
#endif

#ifdef _LINUX 
     #include <pthread.h>
     #include <semaphore.h>
    
	 #define MY_CRITICAL pthread_mutex_t
	 #define WINAPI
        #define MY_THREAD pthread_t
        #define MY_SOCKET int
        #define FILE_HANDLE int

        #define INVALID_FD -1
        #define INVALID_SOCK INVALID_FD

        #define DIR_SEPARATOR  "/"

        typedef void *(*MY_THREAD_FUNC_TYPE)(void*);        
#endif

typedef struct {
        #ifdef _WIN
        HANDLE h;
        #endif
        #ifdef _LINUX
        sem_t sem;
        #endif
}MY_SEM;


extern void MySemInit(MY_SEM *pSem, Uint32 InitValue);
extern void MySemDestroy(MY_SEM *pSem);
extern int MySemWait(MY_SEM *pSem);
extern void MySemPost(MY_SEM *pSem);

extern void MyCriticalInit(MY_CRITICAL *pCritical);
extern void MyCriticalEntry(MY_CRITICAL *pCritical);
extern void MyCriticalLeave(MY_CRITICAL *pCritical);
extern void MyCriticalDestroy(MY_CRITICAL *pCritical);


extern void MyCloseSocket(MY_SOCKET *pSocketFd);

extern int MyThreadCreate(MY_THREAD *pThread, MY_THREAD_FUNC_TYPE start_routine, void *para);

extern int InitNetwork(void);
extern void UnInitNetwork(void);

extern Uint32 MyGetSysTick(void);

extern int MyFileExists(char *FileName);// //1 exists, 0 not found

//extern void MyClose(void *fd);

extern void MySleep(Uint32 i);

int MyIsDirExists(const char *Dir);

void MyExtractFilePath(Uint8 *Dest, Uint8 *FileName);

void MyExtractFileExt(Uint8 *Dest, Uint8 *FileName);
void MyExtractFileName( Uint8 *Dest, Uint8 *FileName, int bWithExt );

//void MyExtractFileName( Uint8 *Dest, Uint8 *FileName, BOOL bWithExt );

Uint32 MyGetFileSize(Uint8 *filepathname);

int MyGetFileDateTime(Uint8 *pathname, Uint16 *pdate, Uint16 *ptime);

//------------------------------------------------------------
#endif





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -