Files
2026-04-23 17:07:55 +08:00

124 lines
5.6 KiB
C
Executable File

/***********************************************************
* Copyright (C), 2021, LuxShare co.,
*
* File name : lux_system_api
*
* Description :
* system or C API
*
* History:
*
* <Date> <Author> <version> <Modification>
* 2021/03/23 chin 0.01 First draft
* 2021/4/25 huangliang 0.02 add system calls
***********************************************************/
#ifndef __LUX_SYSTEM_API_H__
#define __LUX_SYSTEM_API_H__
#include <string.h>
#include <dirent.h>
#include <sys/stat.h>
#include "lux_base.h"
#include <unistd.h>
#include <arpa/inet.h>
#include <regex.h>
#include <netdb.h> /* gethostbyname() */
#define F_OK 0
extern void* LuxMmap(void *addr, size_t length, int prot, int flags,int fd, off_t offset);
extern int LuxMunmap(void *addr, size_t length);
extern int LuxMsync(void *addr, size_t length, int flags);
extern void* LuxMemset(void* pStr, int iValue, size_t szCount);
extern EFuncRetCode LuxMemsetSafe(void* pDestStr, size_t szSize, int iValue, size_t szCount);
extern void* LuxMemcpy(void* pDst, const void* pSrc, size_t szCount);
extern EFuncRetCode LuxMemcpySafe(void* pDst, size_t szSize, const void* pSrc, size_t szCount);
extern int LuxMemcmp(const void* pBuf1,const void* pBuf2,size_t szCount);
extern char* LuxStrcpy(char* pcDestStr, const char* pcScrStr);
extern char* LuxStrncpy(char* pcDestStr, const char* pcScrStr, size_t szCount);
extern int LuxStrcmp(const char* pcStr1, const char* pcStr2);
extern int LuxStrncmp(const char* pcStr1, const char* pcStr2, size_t szCount);
extern size_t LuxStrlen(const char* pcStr);
extern size_t LuxStrnlen(const char* pcStr, size_t szLen);
extern char* LuxStrcat(char* pcDestStr, const char* pcSrcStr);
extern char* LuxStrncat(char* pcDest, const char* pcSrc, size_t szCount);
extern char* LuxStrstr(char* pcDestStr, const char* pcSrcStr);
extern int LuxPrintf(const char* fmt,...);
extern int LuxFprintf(FILE* fp, char* fmt, ...);
extern int LuxDprintf(int fd, const char *fmt, ...);
extern int LuxSprintf(char* pcBuf, const char* fmt, ...);
extern int LuxSnprintf(char* pcBuf, size_t szSize, const char* fmt, ...);
extern int LuxSscanf(const char* pcBuf, const char* fmt, ...);
extern int LuxScanf(const char* fmt, ...);
extern int LuxFscanf(FILE* stream, const char* fmt, ...);
extern int LuxOpenAndCreat(const char* pcPathname,int iFlags,mode_t mode);
extern int LuxOpen(const char* pcPathname,int iFlags);
extern int LuxClose(int fd);
extern ssize_t LuxRead(int fd, void* pBuf, size_t szCount);
extern ssize_t LuxWrite(int fd, void* pBuf, size_t szCount);
extern off_t LuxLseek(int fd, off_t offset, int iWhence);
extern FILE* LuxFopen(const char* pcPathname, const char* pcMode);
extern int LuxFclose(FILE* stream);
extern size_t LuxFread(void* ptr, size_t szSize, size_t szNmemb, FILE* stream);
extern size_t LuxFwrite(const void* ptr, size_t szSize, size_t szNmemb, FILE* stream);
extern int LuxFseek(FILE *stream, long offset, int iWhence);
extern long LuxFtell(FILE* stream);
extern void LuxRewind(FILE* stream);
extern EFuncRetCode LuxSystem(char* pcCmdStr);
extern FILE* LuxPopen(const char* pcCmdStr, const char* pcType);
extern int LuxPclose(FILE* stream);
extern void* LuxDlopen(const char* pcFilename, int iFlags);
extern int LuxDlclose(void* pDlhandle);
extern void* LuxDlsym(void* pDlhandle, const char* pcSymbol);
extern char* LuxDlerror(void);
extern time_t LuxTime(time_t* timep);
extern char* LuxCtime(const time_t* timep);
extern char* LuxAsctime(const struct tm* tm);
extern struct tm* LuxGmtime(const time_t* timep);
extern struct tm* LuxLocaltime(const time_t* timep);
extern time_t LuxMktime(struct tm* tm);
extern void* LuxMalloc(size_t size);
extern void* LuxCalloc(size_t nmemb, size_t size);
extern void* LuxRealloc(void* ptr, size_t size);
extern void LuxFree(void* ptr);
extern void* LuxMemchr(const void* pStr, int iCharacter, size_t szCount);
extern char* LuxStrchr(const char* pcStr, int iCharacter);
extern char* LuxStrtok(char* pcStr, const char* pcDelim);
extern int LuxFeof(FILE* stream);
extern int LuxFflush(FILE* stream);
extern int LuxRemove(const char* pcFilename);
extern int LuxRename(const char* pcOldFilename, const char* pcNewFilename);
extern int LuxRand(void);
extern void LuxSrand(unsigned int iSeed);
extern int LuxAccess(const char* pcPathName,int mode);
extern int LuxClosedir(DIR* psDir);
extern struct dirent* LuxReaddir(DIR* psDir);
extern int LuxChdir(const char* pcPathName);
extern int LuxRmdir(const char* pcPathname);
extern int LuxChmod(const char* pcFilename,mode_t mode);
extern int LuxMkdir(const char* pcPathName,mode_t mode);
extern int LuxClockgettime (__clockid_t ClockId, struct timespec* psTimeSpec);
extern int LuxClocksettime (__clockid_t ClockId, struct timespec* psTimeSpec);
extern int LuxFgetc(FILE *pstream);
extern int LuxFputc(int chara, FILE *pstream);
extern int LuxFerror(FILE *pstream);
extern DIR* LuxOpendir(const char *pcdirname);
extern const char* LuxInetNtop(int af, const void* psrc, char* pcDst, size_t size);
extern int LuxInetPton(int af, const char *pcSrc, void *pDst);
extern char* LuxInetNtoa(struct in_addr in);
extern int LuxSocket(int domain, int type, int protocol);
extern int LuxIoctl(int fd, unsigned long request, ...);
extern void LuxReboot(int iFlag);
extern int LuxRegcomp(regex_t *compiled, const char *pattern, int cflags);
extern int LuxRegexec(regex_t *compiled, char *string, size_t nmatch, regmatch_t matchptr[], int eflags);
extern void LuxRegfree(regex_t *compiled);
extern int LuxGetaddrinfo( const char *hostname, const char *service, const struct addrinfo *hints, struct addrinfo **result );
extern int LuxAtoi(const char* paddr);
#endif