亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? util.h

?? 一個(gè)開(kāi)源的網(wǎng)絡(luò)開(kāi)發(fā)庫(kù)ACE
?? H
字號(hào):
/*
 * util.h,v 1.3 2000/06/04 22:00:03 brunsch Exp
 *
 * Copyright (c) 1994, 1995.  Netscape Communications Corporation.  All
 * rights reserved.
 *
 * Use of this software is governed by the terms of the license agreement for
 * the Netscape Communications or Netscape Comemrce Server between the
 * parties.
 */


/* ------------------------------------------------------------------------ */


/*
 * util.h: A hodge podge of utility functions and standard functions which
 *         are unavailable on certain systems
 *
 * Rob McCool
 */


#ifndef HTTPD_UTIL_H
#define HTTPD_UTIL_H

#include "buffer.h"    /* filebuf for getline */

#include <time.h>      /* struct tm */


/* ------------------------------ Prototypes ------------------------------ */


/*
 * getline scans in buf until it finds a LF or CRLF, storing the string in
 * l. It will terminate the string and return:
 *
 *  0 when done, with the scanned line (minus CR or LF) in l
 *  1 upon EOF, with the scanned line (minus CR or LF) in l
 * -1 on error with the error description in l (uses lineno for information)
 */

int util_getline(filebuf *buf, int lineno, int maxlen, char *l);


/*
 * can_exec returns 1 if you can execute the file described by finfo, and
 * 0 if you can't.
 */

#ifdef XP_UNIX
#include <sys/stat.h>
#include <sys/types.h>

int util_can_exec(struct stat *finfo, uid_t uid, gid_t gid);

#endif /* XP_UNIX */
/*
 * env_create creates a new environment with the given env, with n new
 * entries, and places the current position that you should add your
 * entries with at pos.
 *
 * If env is NULL, it will allocate a new one. If not, it will reallocate
 * that one.
 */

char **util_env_create(char **env, int n, int *pos);

/*
 * util_env_str allocates a string from the given name and value and
 * returns it. It does not check for things like = signs in name.
 */

char *util_env_str(char *name, char *value);

/*
 * env_replace replaces the occurrence of the given variable with the
 * value you give.
 */

void util_env_replace(char **env, char *name, char *value);

/*
 * util_env_free frees an environment.
 */

void util_env_free(char **env);

/*
 * util_env_find looks through env for the named string. Returns the
 * corresponding value if the named string is found, or NULL if not.
 */
char *util_env_find(char **env, char *name);


/*
 * hostname gets the local hostname. Returns NULL if it can't find a FQDN.
 * You are free to realloc or free this string.
 */

char *util_hostname(void);


/*
 * chdir2path changes the current directory to the one that the file
 * path is in. path should point to a file. Caveat: path must be a writable
 * string. It won't get modified permanently.
 */

int util_chdir2path(char *path);

/*
 * is_mozilla checks if the given user-agent is mozilla, of at least
 * the given major and minor revisions. These are strings to avoid
 * ambiguities like 1.56 > 1.5
 */

int util_is_mozilla(char *ua, char *major, char *minor);

/*
 * is_url will return 1 if the given string seems to be a URL, or will
 * return 0 otherwise.
 *
 * Because of stupid news URLs, this will return 1 if the string has
 * all alphabetic characters up to the first colon and will not check for
 * the double slash.
 */

int util_is_url(char *url);

/*
 * util_later_than checks the date in the string ims, and if that date is
 * later than or equal to the one in the tm struct lms, then it returns 1.
 *
 * Handles RFC 822, 850, and ctime formats.
 */

int util_later_than(struct tm *lms, char *ims);


/*
 * util_uri_is_evil returns 1 if a URL has ../ or // in it.
 */
int util_uri_is_evil(char *t);

/*
 * util_uri_parse gets rid of /../, /./, and //.
 *
 * Assumes that either the string starts with a /, or the string will
 * not .. right off of its beginning.  As such, ../foo.gif will
 * not be changed, although /../foo.gif will become /foo.gif.
 */

void util_uri_parse(char *uri);

/*
 * util_uri_unescape unescapes the given URI in place (% conversions only).
 */

void util_uri_unescape(char *s);

/*
 * util_uri_escape escapes any nasty chars in s and copies the string into d.
 * If d is NULL, it will allocate and return a properly sized string.
 * Warning: does not check bounds on a given d.
 *
 * util_url_escape does the same thing but does it for a url, i.e. ?:+ is
 * not escaped.
 */

char *util_uri_escape(char *d, char *s);
char *util_url_escape(char *d, char *s);

/*
 * util_sh_escape places a \ in front of any shell-special characters.
 * Returns a newly-allocated copy of the string.
 */

char *util_sh_escape(char *s);

/*
 * util_itoa converts the given integer to a string into a.
 */

int util_itoa(int i, char *a);

/*
 * util_vsprintf and util_sprintf are simplified clones of the System V
 * vsprintf and sprintf routines.
 *
 * Returns the number of characters printed. Only handles %d and %s,
 * does not handle any width or precision.
 */

#include <stdarg.h>

int util_vsprintf(char *s, register char *fmt, va_list args);
int util_sprintf(char *s, char *fmt, ...);

/* These routines perform bounds checks. */
int util_vsnprintf(char *s, int n, register char *fmt, va_list args);
int util_snprintf(char *s, int n, char *fmt, ...);

#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
热久久免费视频| 亚洲一区二区四区蜜桃| 国产99久久久久久免费看农村| 日韩精品一区二区三区中文不卡 | 欧美精品乱码久久久久久按摩 | 在线不卡的av| 久久国产福利国产秒拍| 欧美精品一区二区久久久| 国产精品一二三| 亚洲欧洲精品成人久久奇米网| 日本韩国一区二区三区| 轻轻草成人在线| 国产亚洲欧美一级| 91福利在线导航| 日韩黄色免费电影| 国产欧美精品在线观看| 色婷婷av久久久久久久| 老司机免费视频一区二区三区| 国产亚洲欧洲997久久综合 | 国产综合久久久久久鬼色| 久久精品亚洲乱码伦伦中文| 色香色香欲天天天影视综合网| 婷婷成人激情在线网| 精品国产伦一区二区三区观看体验| 成人精品在线视频观看| 亚洲成在人线在线播放| 国产色产综合色产在线视频| 欧美曰成人黄网| 国产成人午夜视频| 日韩电影一区二区三区| 日韩一区中文字幕| 精品国产一区二区亚洲人成毛片| 色国产精品一区在线观看| 久久国产乱子精品免费女| 一区二区三区日韩精品| 精品剧情在线观看| 在线区一区二视频| 成人黄色网址在线观看| 美女视频免费一区| 亚洲一级二级在线| 国产精品嫩草99a| 精品美女一区二区| 欧美四级电影网| 99久久er热在这里只有精品15| 久久99精品一区二区三区| 亚洲色图欧美偷拍| 亚洲国产精品嫩草影院| 中文字幕精品三区| 欧美大片在线观看一区| 欧美精品自拍偷拍| 9久草视频在线视频精品| 激情都市一区二区| 日本不卡一二三区黄网| 亚洲成人免费影院| 亚洲男人的天堂av| 国产精品久久久久aaaa| 国产婷婷色一区二区三区在线| 欧美大肚乱孕交hd孕妇| 7777女厕盗摄久久久| 在线精品视频免费观看| 色老汉av一区二区三区| 成人美女在线视频| 国产精品中文有码| 国产精品综合视频| 国产精品一区一区| 国产成人午夜99999| 国模无码大尺度一区二区三区| 美女一区二区视频| 久久精品国产99国产精品| 男男gaygay亚洲| 日韩不卡一区二区三区| 丝袜美腿一区二区三区| 日本伊人色综合网| 男女激情视频一区| 老司机精品视频在线| 久久99久久精品| 国产麻豆视频精品| 国产91在线观看丝袜| 成人福利电影精品一区二区在线观看| 国产精品正在播放| 成人黄色小视频| 91免费国产视频网站| 色8久久人人97超碰香蕉987| 在线观看日韩一区| 91精品黄色片免费大全| 精品国产91洋老外米糕| 久久青草欧美一区二区三区| 欧美国产日本视频| 依依成人精品视频| 日韩黄色免费网站| 国内精品伊人久久久久av一坑| 国产成人精品综合在线观看| 91丨九色丨蝌蚪丨老版| 欧美伊人精品成人久久综合97| 欧美日本乱大交xxxxx| 精品国产乱码久久久久久图片 | 久久精品视频一区二区三区| 亚洲国产精品成人综合| 亚洲男人的天堂网| 日本视频中文字幕一区二区三区| 国产剧情一区二区三区| 色综合激情五月| 欧美日韩aaa| 久久精品网站免费观看| 一区二区在线电影| 久久电影网站中文字幕| 不卡的电影网站| 欧美一区二区三区视频免费| 国产欧美一区二区精品仙草咪| 一区二区三区在线视频免费| 青青草精品视频| 不卡免费追剧大全电视剧网站| 欧美精品日韩一本| 国产婷婷色一区二区三区| 午夜视频在线观看一区二区三区 | 91精品国产综合久久久蜜臀粉嫩| 精品毛片乱码1区2区3区| 亚洲人成网站在线| 精品中文av资源站在线观看| 色婷婷国产精品| 久久亚洲捆绑美女| 午夜国产不卡在线观看视频| 国产91色综合久久免费分享| 3d动漫精品啪啪1区2区免费| 中文字幕乱码一区二区免费| 免费日韩伦理电影| 欧美午夜片在线看| 国产精品女主播av| 狠狠色丁香久久婷婷综| 欧美在线不卡视频| 国产精品天美传媒沈樵| 久久精品99国产精品| 欧美曰成人黄网| 中文字幕亚洲区| 激情久久久久久久久久久久久久久久| 色婷婷精品大视频在线蜜桃视频| 久久女同互慰一区二区三区| 日本va欧美va精品| 欧美网站一区二区| 国产精品美女视频| 丁香五精品蜜臀久久久久99网站| 91麻豆精品91久久久久同性| 亚洲精品乱码久久久久久日本蜜臀| 国产一区二区伦理| 欧美videossexotv100| 午夜不卡av免费| 欧美午夜精品久久久久久孕妇| 国产精品网友自拍| 国产成人亚洲精品狼色在线| 久久一区二区三区四区| 伦理电影国产精品| 日韩一级大片在线| 蜜臀av一区二区在线观看| 欧美美女直播网站| 亚洲成a人在线观看| 在线看不卡av| 亚洲精品成a人| 91高清视频在线| 亚洲午夜免费视频| 欧美人妖巨大在线| 婷婷综合久久一区二区三区| 欧美日韩高清一区二区不卡| 亚洲午夜激情av| 欧美性大战久久久久久久| 亚洲福利国产精品| 制服丝袜中文字幕一区| 三级久久三级久久| 日韩一卡二卡三卡四卡| 美女性感视频久久| 欧美精品一区二区三区在线播放| 久久爱另类一区二区小说| 欧美精品一区二区在线播放 | 亚洲欧美日韩一区二区| 97成人超碰视| 亚洲一区二区三区四区中文字幕| 91福利在线看| 日韩电影在线一区二区三区| 精品日韩在线观看| 久久99在线观看| 国产精品全国免费观看高清| 91在线国产福利| 亚洲超碰97人人做人人爱| 91精品国产综合久久久蜜臀粉嫩| 狠狠色综合日日| 日韩理论片中文av| 精品视频在线免费| 精东粉嫩av免费一区二区三区| 国产女人水真多18毛片18精品视频| 成人av资源在线观看| 亚洲主播在线播放| 精品播放一区二区| 91婷婷韩国欧美一区二区| 五月激情丁香一区二区三区| 欧美电视剧免费全集观看| 成人精品视频一区| 五月天一区二区| 国产日韩欧美高清| 欧美日高清视频| 国产精品1区二区.| 亚洲一二三专区|