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

📄 fcgi_stdio.h

📁 FastCGI,语言无关的、可伸缩架构的CGI开放扩展
💻 H
字号:
/*  * fcgi_stdio.h -- * *      FastCGI-stdio compatibility package * * * Copyright (c) 1996 Open Market, Inc. * * See the file "LICENSE.TERMS" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * $Id: fcgi_stdio.h,v 1.5 2001/06/22 13:21:15 robs Exp $ */#ifndef _FCGI_STDIO#define _FCGI_STDIO 1#include <stdio.h>#include <sys/types.h>#include "fcgiapp.h"#if defined (c_plusplus) || defined (__cplusplus)extern "C" {#endif#ifndef DLLAPI#ifdef _WIN32#define DLLAPI __declspec(dllimport)#else#define DLLAPI#endif#endif/* * Wrapper type for FILE */typedef struct {    FILE *stdio_stream;    FCGX_Stream *fcgx_stream;} FCGI_FILE;/* * The four new functions and two new macros */DLLAPI int FCGI_Accept(void);DLLAPI void FCGI_Finish(void);DLLAPI int FCGI_StartFilterData(void);DLLAPI void FCGI_SetExitStatus(int status);#define FCGI_ToFILE(fcgi_file) (fcgi_file->stdio_stream)#define FCGI_ToFcgiStream(fcgi_file) (fcgi_file->fcgx_stream)/* * Wrapper stdin, stdout, and stderr variables, set up by FCGI_Accept() */DLLAPI extern	FCGI_FILE	_fcgi_sF[];#define FCGI_stdin	(&_fcgi_sF[0])#define FCGI_stdout	(&_fcgi_sF[1])#define FCGI_stderr	(&_fcgi_sF[2])/* * Wrapper function prototypes, grouped according to sections * of Harbison & Steele, "C: A Reference Manual," fourth edition, * Prentice-Hall, 1995. */DLLAPI void FCGI_perror(const char *str);DLLAPI FCGI_FILE *FCGI_fopen(const char *path, const char *mode);DLLAPI int        FCGI_fclose(FCGI_FILE *fp);DLLAPI int        FCGI_fflush(FCGI_FILE *fp);DLLAPI FCGI_FILE *FCGI_freopen(const char *path, const char *mode, FCGI_FILE *fp);DLLAPI int        FCGI_setvbuf(FCGI_FILE *fp, char *buf, int bufmode, size_t size);DLLAPI void       FCGI_setbuf(FCGI_FILE *fp, char *buf);DLLAPI int        FCGI_fseek(FCGI_FILE *fp, long offset, int whence);DLLAPI int        FCGI_ftell(FCGI_FILE *fp);DLLAPI void       FCGI_rewind(FCGI_FILE *fp);#ifdef HAVE_FPOSDLLAPI int        FCGI_fgetpos(FCGI_FILE *fp, fpos_t *pos);DLLAPI int        FCGI_fsetpos(FCGI_FILE *fp, const fpos_t *pos);#endifDLLAPI int        FCGI_fgetc(FCGI_FILE *fp);DLLAPI int        FCGI_getchar(void);DLLAPI int        FCGI_ungetc(int c, FCGI_FILE *fp);DLLAPI char      *FCGI_fgets(char *str, int size, FCGI_FILE *fp);DLLAPI char      *FCGI_gets(char *str);/* * Not yet implemented * * int        FCGI_fscanf(FCGI_FILE *fp, const char *format, ...); * int        FCGI_scanf(const char *format, ...); * */DLLAPI int        FCGI_fputc(int c, FCGI_FILE *fp);DLLAPI int        FCGI_putchar(int c);DLLAPI int        FCGI_fputs(const char *str, FCGI_FILE *fp);DLLAPI int        FCGI_puts(const char *str);DLLAPI int        FCGI_fprintf(FCGI_FILE *fp, const char *format, ...);DLLAPI int        FCGI_printf(const char *format, ...);DLLAPI int        FCGI_vfprintf(FCGI_FILE *fp, const char *format, va_list ap);DLLAPI int        FCGI_vprintf(const char *format, va_list ap);DLLAPI size_t     FCGI_fread(void *ptr, size_t size, size_t nmemb, FCGI_FILE *fp);DLLAPI size_t     FCGI_fwrite(void *ptr, size_t size, size_t nmemb, FCGI_FILE *fp);DLLAPI int        FCGI_feof(FCGI_FILE *fp);DLLAPI int        FCGI_ferror(FCGI_FILE *fp);DLLAPI void       FCGI_clearerr(FCGI_FILE *fp);DLLAPI FCGI_FILE *FCGI_tmpfile(void);DLLAPI int        FCGI_fileno(FCGI_FILE *fp);DLLAPI FCGI_FILE *FCGI_fdopen(int fd, const char *mode);DLLAPI FCGI_FILE *FCGI_popen(const char *cmd, const char *type);DLLAPI int        FCGI_pclose(FCGI_FILE *);/* * The remaining definitions are for application programs, * not for fcgi_stdio.c */#ifndef NO_FCGI_DEFINES/* * Replace standard types, variables, and functions with FastCGI wrappers. * Use undef in case a macro is already defined. */#undef  FILE#define	FILE     FCGI_FILE#undef  stdin#define	stdin    FCGI_stdin#undef  stdout#define	stdout   FCGI_stdout#undef  stderr#define	stderr   FCGI_stderr#undef  perror#define	perror   FCGI_perror#undef  fopen#define	fopen    FCGI_fopen#undef  fclose#define	fclose   FCGI_fclose#undef  fflush#define	fflush   FCGI_fflush#undef  freopen#define	freopen  FCGI_freopen#undef  setvbuf#define	setvbuf  FCGI_setvbuf#undef  setbuf#define	setbuf   FCGI_setbuf#undef  fseek#define fseek    FCGI_fseek#undef  ftell#define ftell    FCGI_ftell#undef  rewind#define rewind   FCGI_rewind#undef  fgetpos#define fgetpos  FCGI_fgetpos#undef  fsetpos#define fsetpos  FCGI_fsetpos#undef  fgetc#define	fgetc    FCGI_fgetc#undef  getc#define getc     FCGI_fgetc#undef  getchar#define	getchar  FCGI_getchar#undef  ungetc#define ungetc   FCGI_ungetc#undef  fgets#define fgets    FCGI_fgets#undef  gets#define	gets     FCGI_gets#undef  fputc#define fputc    FCGI_fputc#undef  putc#define putc     FCGI_fputc#undef  putchar#define	putchar  FCGI_putchar#undef  fputs#define	fputs    FCGI_fputs#undef  puts#define	puts     FCGI_puts#undef  fprintf#define	fprintf  FCGI_fprintf#undef  printf#define	printf   FCGI_printf#undef  vfprintf#define vfprintf FCGI_vfprintf#undef  vprintf#define vprintf  FCGI_vprintf#undef  fread#define	fread    FCGI_fread#undef  fwrite#define fwrite   FCGI_fwrite#undef  feof#define	feof     FCGI_feof#undef  ferror#define ferror   FCGI_ferror#undef  clearerr#define	clearerr FCGI_clearerr#undef  tmpfile#define tmpfile  FCGI_tmpfile#undef  fileno#define fileno   FCGI_fileno#undef  fdopen#define fdopen   FCGI_fdopen#undef  popen#define popen    FCGI_popen#undef  pclose#define	pclose   FCGI_pclose#endif /* NO_FCGI_DEFINES */#if defined (__cplusplus) || defined (c_plusplus)} /* terminate extern "C" { */#endif#endif /* _FCGI_STDIO */

⌨️ 快捷键说明

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