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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? apr-tutorial-9.html

?? 跨平臺windowsunixlinux的c語言編程解決方案
?? HTML
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><HTML><HEAD> <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21"> <TITLE>libapr(apache portable runtime) programming tutorial: time handling</TITLE> <LINK HREF="apr-tutorial-10.html" REL=next> <LINK HREF="apr-tutorial-8.html" REL=previous> <LINK HREF="apr-tutorial.html#toc9" REL=contents></HEAD><BODY><A HREF="apr-tutorial-10.html">Next</A><A HREF="apr-tutorial-8.html">Previous</A><A HREF="apr-tutorial.html#toc9">Contents</A><HR><H2><A NAME="s9">9.</A> <A HREF="apr-tutorial.html#toc9">time handling</A></H2><P>libapr's time APIs are almost based on POSIX scheme. The value of apr_time_t is the elapsed time since UNIX epoch time(1970/1/1). The big differences are that apr_time_t is 64bit(long long) number and it represents microseconds. The most useful API is apr_time_now(). As you can guess, it returns the current time. You can find the protype declaration in apr_time.h.</P><P>/* excerpted from apr_time.h */<BLOCKQUOTE><CODE><PRE>APR_DECLARE(apr_time_t) apr_time_now(void);</PRE></CODE></BLOCKQUOTE></P><P>In many cases, we need to convert apr_time_t value to the other formats. There are mainly two formats.- apr_time_exp_t (time structure)- string formats (e.g. rfc822)</P><P>We use the following APIs to convert apr_time_t to apr_time_exp_t structure.</P><P>/* excerpted from apr_time.h */<BLOCKQUOTE><CODE><PRE>APR_DECLARE(apr_status_t) apr_time_exp_gmt(apr_time_exp_t *result, apr_time_t input);APR_DECLARE(apr_status_t) apr_time_exp_lt(apr_time_exp_t *result, apr_time_t input);</PRE></CODE></BLOCKQUOTE></P><P>The apr_time_exp_gmt() returns the result in GMT timezone, and apr_time_exp_lt() returns the result in local timezone. The first argument of both APIs is result argument.</P><P>We can do the opposite conversion. We use the following API to convert apr_time_exp_t structure to apr_time_t value.</P><P>/* excerpted from apr_time.h */<BLOCKQUOTE><CODE><PRE>APR_DECLARE(apr_status_t) apr_time_exp_get(apr_time_t *result, apr_time_exp_t *input);</PRE></CODE></BLOCKQUOTE></P><P>There are some APIs to convert apr_time_t to various string formats as follows:</P><P>/* excerpted from apr_time.h */<BLOCKQUOTE><CODE><PRE>APR_DECLARE(apr_status_t) apr_rfc822_date(char *date_str, apr_time_t t);APR_DECLARE(apr_status_t) apr_ctime(char *date_str, apr_time_t t);APR_DECLARE(apr_status_t) apr_strftime(char *s, apr_size_t *retsize, apr_size_t max, const char *format, apr_time_exp_t *tm);</PRE></CODE></BLOCKQUOTE></P><P>On the other hand, if we convert such string formats to apr_time_t value, we have to call apr-util APIs, which are defined in apr_date.h.</P><P>Please take a look at <A HREF="../sample/time-sample.c">time-sample.c</A> about the usage of time APIs. </P><P><EM>REMARK</EM>: As stated above, apr_time_t is long long type (64bit). Note that the following sample code causes overflow.</P><P><BLOCKQUOTE><CODE><PRE>/* BUGGY sample. This overflows */const apr_time_t ONE_HOUR = 1000 * 1000 * 60 * 60;</PRE></CODE></BLOCKQUOTE></P><P>We can fix the bug by explicit type cast, but I recommend you to use implicit type cast which libapr provides. The following code shows it.</P><P><BLOCKQUOTE><CODE><PRE>/* two examples to get around overflow above */const apr_time_t ONE_HOUR = APR_TIME_C(1000) * 1000 * 60 * 60;orconst apr_time_t ONE_HOUR = APR_USEC_PER_SEC * 60 * 60;</PRE></CODE></BLOCKQUOTE></P><P><EM>REMARK</EM>: Sometimes, often in debugging, we want to print out time values. Unfortunately, Unix and Windows have different printf(3) format specifier for 64bit value. On Unix it is "%lld" and on Windows it is "%I64d". For such portability issues, libapr provides format specifiers, e.g. APR_INT64_T_FMT. There is APR_TIME_T_FMT in apr_time.h. We can write portable code with such format specifiers.</P><P><BLOCKQUOTE><CODE><PRE>/* On Unix, APR_INT64_T_FMT is defined in apr.h */#define APR_INT64_T_FMT "lld"/* On Windows, APR_INT64_T_FMT is defined in apr.h */#define APR_INT64_T_FMT "I64d"/* excerpted from apr_time.h */#define APR_TIME_T_FMT APR_INT64_T_FMT/* We can use APR_TIME_T_FMT as follows */printf("The current time: %" APR_TIME_T_FMT "[us]\n", apr_time_now());</PRE></CODE></BLOCKQUOTE></P><HR><A HREF="apr-tutorial-10.html">Next</A><A HREF="apr-tutorial-8.html">Previous</A><A HREF="apr-tutorial.html#toc9">Contents</A></BODY></HTML>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
夫妻av一区二区| 亚洲一区二区三区爽爽爽爽爽| 亚洲在线成人精品| 国产成人综合在线| 日韩一区二区电影| 性做久久久久久免费观看欧美| 成人理论电影网| 国产色产综合色产在线视频| 久久精品国产77777蜜臀| 欧美日韩一级二级三级| 亚洲精品水蜜桃| 99国产一区二区三精品乱码| 亚洲国产精品二十页| 国产成人av电影| 国产精品久久久久久亚洲伦| 成人一道本在线| 国产精品视频看| 99国产精品久| 亚洲免费观看高清| 一本久道中文字幕精品亚洲嫩| 国产精品无人区| av不卡免费电影| 亚洲精品国产品国语在线app| 91麻豆免费视频| 日韩影院在线观看| 日韩精品中文字幕一区二区三区| 精品一区二区在线免费观看| 欧美精品一区二区三区蜜桃视频 | 亚洲欧美一区二区视频| 99在线精品观看| 亚洲成人动漫在线免费观看| 日韩欧美高清dvd碟片| 国产成人免费网站| 午夜精品久久久久影视| 日韩一区二区电影| 丰满岳乱妇一区二区三区| 蜜桃av一区二区| 国内不卡的二区三区中文字幕| 亚洲欧美另类久久久精品 | 日韩综合一区二区| 亚洲日本在线观看| 中文字幕的久久| 日本一二三四高清不卡| 精品国产乱码久久久久久1区2区| 成人免费精品视频| 伦理电影国产精品| 亚洲一区免费在线观看| 亚洲欧美一区二区视频| 欧美变态tickle挠乳网站| 日本国产一区二区| 国产99精品在线观看| 久久99热狠狠色一区二区| 1区2区3区国产精品| 精品久久久久香蕉网| 日本丶国产丶欧美色综合| 狠狠色丁香婷综合久久| 免费xxxx性欧美18vr| 午夜精品福利久久久| 国产欧美一区视频| 2020日本不卡一区二区视频| 制服丝袜国产精品| 欧美色综合天天久久综合精品| 丰满少妇在线播放bd日韩电影| 久久精品免费观看| 奇米精品一区二区三区在线观看| 亚洲国产成人精品视频| 一区二区三区影院| 亚洲一区二区三区四区五区中文 | 青椒成人免费视频| 石原莉奈在线亚洲二区| 亚欧色一区w666天堂| 亚洲国产一区二区三区| 亚洲一区二区偷拍精品| 亚洲成年人网站在线观看| 久久精品国产一区二区| 99精品欧美一区二区蜜桃免费 | 久久精品国产在热久久| 麻豆国产一区二区| 国产成人丝袜美腿| 欧美图片一区二区三区| 日韩视频免费观看高清完整版在线观看| 日韩精品最新网址| 欧美国产日本视频| 亚洲欧美另类在线| 国产老妇另类xxxxx| 91精品91久久久中77777| 欧美一区二区在线看| 国产精品国产自产拍高清av王其| 亚洲午夜在线观看视频在线| 国产成人免费网站| 国产精品国产三级国产有无不卡 | 国产最新精品精品你懂的| 91国偷自产一区二区开放时间 | 高清成人在线观看| 日本欧洲一区二区| 美女视频黄久久| 国产福利一区在线观看| 成人av在线一区二区三区| 99国产精品国产精品久久| 91亚洲精华国产精华精华液| 色噜噜狠狠色综合欧洲selulu| 在线视频综合导航| 欧美三级视频在线观看| 日韩欧美电影一区| 国产欧美一区视频| 一区二区三区久久久| 偷拍与自拍一区| 成人免费视频app| 色哦色哦哦色天天综合| 欧美另类z0zxhd电影| 精品成人私密视频| 亚洲午夜久久久久中文字幕久| 图片区小说区区亚洲影院| 国产剧情一区二区| 在线观看国产91| 精品sm在线观看| 国内精品国产三级国产a久久| 国产美女av一区二区三区| 日韩一区二区视频| 亚洲欧美精品午睡沙发| 琪琪久久久久日韩精品| 麻豆精品在线播放| 久久99蜜桃精品| 风间由美性色一区二区三区| 欧美日韩亚洲综合在线| 亚洲一区在线免费观看| 精品日韩成人av| 欧洲一区在线电影| 日韩欧美国产午夜精品| 色婷婷国产精品综合在线观看| 精品一区二区三区的国产在线播放| 亚洲自拍偷拍图区| 成人欧美一区二区三区视频网页| 欧美精品一区二| 91精品国产91久久久久久一区二区| 91亚洲午夜精品久久久久久| 高清国产一区二区| 国产精品996| 精品一区精品二区高清| 欧美成人乱码一区二区三区| 亚洲男女毛片无遮挡| 国产99久久久国产精品潘金 | 免费成人在线网站| 成人免费看黄yyy456| 欧美mv和日韩mv的网站| 免费久久精品视频| 777午夜精品视频在线播放| 一级做a爱片久久| 色婷婷精品大在线视频| 中文字幕一区av| 欧美日韩国产影片| 天堂精品中文字幕在线| 欧美日韩一区成人| 性欧美大战久久久久久久久| 91精品国产高清一区二区三区| 婷婷久久综合九色国产成人 | 欧美激情一区二区三区不卡| 激情五月婷婷综合网| 337p日本欧洲亚洲大胆精品| 国产高清亚洲一区| 国产精品久久久久久妇女6080| 一本色道久久加勒比精品| 亚洲一区二区av电影| 久久久亚洲国产美女国产盗摄 | 国产美女精品在线| www国产成人| 在线观看日韩精品| 欧美美女直播网站| 日韩午夜av电影| 一区二区三区在线观看网站| 国产精品福利av| 国产精品久99| 一区二区三区在线高清| 亚洲狠狠爱一区二区三区| 石原莉奈一区二区三区在线观看| 日韩高清欧美激情| 狠狠色丁香久久婷婷综合丁香| 国产精品亚洲综合一区在线观看| 高清国产一区二区三区| 91丨porny丨国产| 5566中文字幕一区二区电影| 精品视频123区在线观看| 丁香激情综合国产| 首页亚洲欧美制服丝腿| 国产日韩精品一区二区三区| 欧洲日韩一区二区三区| 高清av一区二区| 日本不卡不码高清免费观看| 国产嫩草影院久久久久| 欧美精品久久一区| 99re视频这里只有精品| 免费在线欧美视频| 国产精品国产馆在线真实露脸 | 亚洲综合视频在线观看| 69堂成人精品免费视频| 91麻豆精品在线观看| caoporn国产一区二区| 国产在线精品免费| 图片区日韩欧美亚洲| 一区二区三区丝袜|