Chinaunix首页 | 论坛 | 博客
  • 博客访问: 34878
  • 博文数量: 8
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2016-12-14 22:45
文章分类
文章存档

2016年(8)

我的朋友

分类: LINUX

2016-04-11 17:02:51

1.open()函数
表头文件 #include
              #include
定义函数 int open(const char *path, int oflag, ...);
              int open(const char *path, int flags);
              int open(const char *path, int flags, mode_t mode);
2.dup、dup2函数
表头文件 #include
定义函数 int dup(int oldfd);
              int dup2(int oldfd, int newfd);
函数说明 这两个函数用于创建文件描述符oldfd的一个副本。dup函数用最小未被使用的文件描述符来指代这个副本,而dup2函数使用参数newfd文件描述符来指代。
             另外,如果有必要(newfd为一已打开的文件描述符),dup2函数则会先关闭newfd文件描述符。
             对于dup2函数有两种特殊情况:
            1) 参数oldfd不是一个有效的文件描述符,则该函数的调用失败,newfd也不会被关闭(如果newfd为一已打开的文件描述符)。
            2) 参数oldfd是一个有效的文件描述符并且参数newfd和oldfd取值相同,则该函数的调用什么也不做,返回newfd。
返回值 如果执行成功则返回新创建的文件描述符,失败返回-1,errno为错误代码。
3.fcntl函数
表头文件 #include
              #include
定义函数 int fcntl(int fd, int cmd);
              int fcntl(int fd, int cmd, long arg);
              int fcntl(int fd, int cmd, struct flock *lock);
函数说明 函数fcntl()用来操作文件描述符的一些特性。参数fd代表欲设置的文件描述符,参数cmd代表欲操作的指令。
返回值 如果执行成功则返回0,失败返回-1,errno为错误代码。
4.openlog函数、syslog函数、closelog函数
表头文件 #include
定义函数 void openlog(const char (ident, int option, int facility);
              void syslog(int priority, const char *format, ...);
              void closelog(void);
函数说明 openlog、syslog、closelog三个函数是一套系统日志写入接口。
返回值 无返回值
5.strftime函数
表头文件 #include
定义函数 size_t strftime(char *s, size_t max, const char *format,const struct tm *tm);
函数说明 strftime()函数用来将时间格式化,可以将时间转换为程序中想要的格式,其将由tm所指向的时间转换为由格式控制串format所控制的字符串,并存放到s所指向的数组中。
返回值 如果包含结束空字符在内的结果字符串的长度不超过max,则strftime()函数返回s所指向的字符数组中字符个数(不包括结束空字符);否则,返回0,并且s数组内容不稳定。
6.time、asctime、asctime_r、ctime、ctime_t、gmtime、gmtime_r、localtime、localtime_r、mktime函数
表头文件 #include
定义函数 time_t time(time_t *doc);
              char *asctime(const struct tm *tm, char *buf);
              char *asctime_r(const struct tm *tm, char *buf);
              char *ctime(const time_t *timep);
              char *ctime_r(const time_t *timep, char *buf);
              struct tm *gmtime(const time_t *timep);
              struct tm *gmtime_r(const time_t *timep, struct tm *result);
              struct tm *localtime(const time_t *timep);
              struct tm *localtime(const time_t *timep, struct tm *result);
              time_t mktime(struct tm *tm);
函数说明 这几个都是有关于时间操作的函数
7.write函数
表头文件 #include
定义函数 ssize_t write(int fildes,  const void *buf, size_t nbytes);
函数说明 write()函数会把参数buf所指内存的nbyte个字节写入到参数fildes所指的文件内,同时文件的读写位置也会随之移动。
返回值 如果函数write()执行成功则返回实际写入的字节数(这个数字不会大于指定的nbyte)。否则,当有错误发生时返回-1,错误代码存入errno中。
8.带有ETag的Web服务器端和客户端之间请求相应流程:
第一次请求:
1) 客户端发起一个HTTP GET请求 (假设请求一个文件A)。
2) Web服务器处理请求并返回相应头和文件内容,其中相应头里就包括由ETag,状态码200。
3) 客户端收到Web服务器响应,除了展示内容给最终用户外还会将内容、ETag等响应信息缓存起来。
第二次请求:
1) 客户端第二次发起HTTP GET请求(当然仍然请求的是文件A),此次客户端除了发送常规请求头外,还会发送一个If-None-Match头,其内容就是第一次请求时服务器返回的ETag。
2) Web服务器判断客户端发送过来的ETag和此刻重新计算出来的ETag是否匹配,如果匹配则表示自客户端第一次请求文件A之后,文件A未发生任何有影响的变化,因此If-None-Match为False,于是Web服务器直接返回304.
3) 客户端收到Web服务器304状态码响应,直到Web服务器上的文件A未发生变化,于是继续使用本地缓存。









阅读(1834) | 评论(0) | 转发(0) |
0

上一篇:浏览器同源政策

下一篇:没有了

给主人留下些什么吧!~~