前言
OpenMP通过在串行程序中插入编译制导指令, 来实现并行化, 支持OpenMP的编译器可以识别, 处理这些指令并实现对应的功能. 所有的编译制导指令都是以#pragma omp
开始, 后面跟具体的功能指令(directive)或者命令. 一般格式如下所示:
1 |
|
OpenMP 是基于共享内存模式的一种并行编程模型, 使用十分方便, 只需要串行程序中加入OpenMP预处理指令, 就可以实现串行程序的并行化. 这里主要进行一些学习记录, 使用的书籍为: Using OpenMP: Portable Shared Memory Parallel Programming 和OpenMP编译原理及实现技术
本文中所使用的IDEA版本为14.1.1, 所使用测试项目为sping mvc的一个最简单的示例, 可以在这里下载示例代码
我们可以使用fopen()创建一个新的或者打开一个文件, 文件信息会保存在一个FILE
类型的指针中, 该函数的原型为:
1 | FILE *fopen( const char * filename, const char * mode ); |
filename
是文件名, mode
是打开模式, 可选值如下:
r
- 以只读方式打开一个文件, 该文件必须存在w
- 以只写方式打开一个文件, 文件不存在会创建新的文件, 文件存在会首先清空原有内容a
- 以追加的方式写文件, 文件不存在会创建新的文件, 文件存在从文件尾开始写文件r+
- 以读写方式打开文件, 文件不存在不会创建新的文件w+
- 以读写方式打开文件, 文件不存在会创建新的文件, 文件存在会首先清空原有内容a+
- 以追加方式读写文件, 文件不存在会创建新的文件, 文件存在从文件尾开始写文件如果是操作二进制文件, 那么需要在mode
里加上b
, 如下所示:
1 | "rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b" |
文件成功打开会返回一个’FILE’类型的指针, 如果打开失败, 会返回一个空指针, 并把错误代码存在errno
中.