fopen(打开文件) | |
定义函数 |
FILE * fopen(const char * path,const char * mode); |
函数说明 |
参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。 mode有下列几种形态字符串: r 打开只读文件,该文件必须存在。 上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。不过在POSIX系统,包含Linux都会忽略该字符。由fopen()所建立的新文件会具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)权限,此文件权限也会参考umask值。 |
返回值 |
文件顺利打开后,指向该流的 文件指针 就会被返回。若果文件打开失败则返回 NULL,并把错误代码存在 errno 中。 |
附加说明 |
一般而言,开文件后会作一些文件读取或写入的动作,若开文件失败,接下来的读写动作也无法顺利进行,所以在fopen()后请作错误判断及处理。 |
范例 |
#include <stdio.h> int main(int argc, char **argv) { FILE *fp; fp = fopen("/Users/jianbao/ClionProjects/apue/123.c", "a+"); if (fp == NULL) { printf("open fail\n"); } else { printf("open success\n"); } fclose(fp); return 0; } |
gcc 是GNU Compiler Collection,原名为Gun C语言编译器,因为它原本只能处理C语言,但gcc很快地扩展,包含很多编译器(C、C++、Objective-C、Ada、Fortran、 Java),可以说gcc是GNU编译器集合。
g++ 是C++编译器。
cc 是 Unix系统的 C Compiler,一个是古老的 C 编译器。而 Linux 下 cc 一般是一个符号连接,指向 gcc;可以通过 $ ls -l /usr/bin/cc 来简单察看,该变量是 make 程序的内建变量,默认指向 gcc 。 cc 符号链接和变量存在的意义在于源码的移植性,可以方便的用 gcc 来编译老的用cc编译的Unix软件,甚至连 makefile 都不用改在,而且也便于 Linux 程序在 Unix下 编译。
CC 则一般是 makefile 里面的一个名字标签,即宏定义,表示采用的是什么编译器(如:CC = gcc)。
err_sys以及err_quit等函数不是C语言自带函数,是作者自己编写的函数。所以,想要运行书中的源代码,就必须自建一个头文件my_err.h把作者的代码拷贝进去,然后在程序中加载。
preg_split() 函数通过一个正则表达式分隔字符串。
array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )
参数说明:
-
$flags:可选,可以是任何下面标记的组合(以位或运算 | 组合):
PREG_SPLIT_NO_EMPTY
:如果这个标记被设置, preg_split() 将进返回分隔后的非空部分。PREG_SPLIT_DELIM_CAPTURE
:如果这个标记设置了,用于分隔的模式中的括号表达式将被捕获并返回。PREG_SPLIT_OFFSET_CAPTURE
:如果这个标记被设置, 对于每一个出现的匹配返回时将会附加字符串偏移量。 注意:这将会改变返回数组中的每一个元素, 使其每个元素成为一个由第0 个元素为分隔后的子串,第1个元素为该子串在subject 中的偏移量组成的数组。
一、监听域对象中属性的变更的监听器
域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器。
这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener 和ServletRequestAttributeListener,这三个接口中都定义了三个方法来处理被监听对象中的属性的增加,删除和替换的事件,同一个事件在这三个接口中对应的方法名称完全相同,只是接受的参数类型不同。
当一个方法返回多个值时,有些返回值有时候用不到,要是声明很多变量来一一接收,显然不太合适(不是不能)。Lua 提供了一个虚变量(dummy variable),以单个下划线(“_”)来命名,用它来丢弃不需要的数值,仅仅起到占位的作用。
Amaze UI:中国首个开源 HTML5 跨屏前端框架
Layui:[荐]经典模块化前端框架(JS组件)
ZUI: 一个基于 Bootstrap 深度定制开源前端实践方案,帮助你快速构建现代跨屏应用。
MZUI:为移动端设计,基于 Flex 的 UI 框架。
go list 命令的作用是列出指定的 代码包 的信息。与其他命令相同,我们需要以 代码包导入路径 的方式给定代码包。被给定的代码包可以有多个。这些代码包对应的目录中必须直接保存有 Go 语言源码文件,其子目录中的文件不算在内。否则,代码包将被看做是不完整的。现在我们来试用一下:
hc@ubt:~$ go list cnet/ctcp pkgtool cnet/ctcp pkgtool