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

📄 page.c

📁 一个典型的用于嵌入式Linux环境的Webserver
💻 C
字号:
/* * Page.c -- Support for page retrieval. * * Copyright (c) GoAhead Software Inc., 1995-2000. All Rights Reserved. * * See the file "license.txt" for usage and redistribution license requirements * * $Id: page.c,v 1.3 2002/10/24 14:44:50 bporter Exp $ *//******************************** Description *********************************//* *	This module provides page retrieval handling. It provides support for *	reading web pages from file systems and has expansion for ROMed web *	pages. *//********************************* Includes ***********************************/#include	"wsIntrn.h"/*********************************** Code *************************************//* *	Open a web page. lpath is the local filename. path is the URL path name. */int websPageOpen(webs_t wp, char_t *lpath, char_t *path, int mode, int perm){	a_assert(websValid(wp));#ifdef WEBS_PAGE_ROM	return websRomPageOpen(wp, path, mode, perm);#else	return (wp->docfd = gopen(lpath, mode, perm));#endif /* WEBS_PAGE_ROM */}/******************************************************************************//* *	Close a web page */void websPageClose(webs_t wp){	a_assert(websValid(wp));#ifdef WEBS_PAGE_ROM	websRomPageClose(wp->docfd);#else	if (wp->docfd >= 0) {		close(wp->docfd);		wp->docfd = -1;	}#endif}/******************************************************************************//* *	Stat a web page lpath is the local filename. path is the URL path name. */int websPageStat(webs_t wp, char_t *lpath, char_t *path, websStatType* sbuf){#ifdef WEBS_PAGE_ROM	return websRomPageStat(path, sbuf);#else	gstat_t	s;	if (gstat(lpath, &s) < 0) {		return -1;	}	sbuf->size = s.st_size;	sbuf->mtime = s.st_mtime;	sbuf->isDir = s.st_mode & S_IFDIR;	return 0;#endif}/******************************************************************************//* *	Is this file a directory? */int websPageIsDirectory(char_t *lpath){#ifdef WEBS_PAGE_ROM	websStatType	sbuf;	if (websRomPageStat(lpath, &sbuf) >= 0) {		return(sbuf.isDir);	} else {		return 0;	}#else	gstat_t sbuf;	if (gstat(lpath, &sbuf) >= 0) {		return(sbuf.st_mode & S_IFDIR);	} else {		return 0;	}#endif}/******************************************************************************//* *	Read a web page. Returns the number of _bytes_ read. *	len is the size of buf, in bytes. */int websPageReadData(webs_t wp, char *buf, int nBytes){#ifdef WEBS_PAGE_ROM	a_assert(websValid(wp));	return websRomPageReadData(wp, buf, nBytes);#else	a_assert(websValid(wp));	return read(wp->docfd, buf, nBytes);#endif}/******************************************************************************//* *	Move file pointer offset bytes. */void websPageSeek(webs_t wp, long offset){	a_assert(websValid(wp));#ifdef WEBS_PAGE_ROM	websRomPageSeek(wp, offset, SEEK_CUR);#else	lseek(wp->docfd, offset, SEEK_CUR);#endif}/******************************************************************************/

⌨️ 快捷键说明

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