✍️ 田冬冬 • 📅 2024-09-12

# -b 选项

-b 选项用于控制二进制文件的输入/输出格式。

在 表数据 一章中已经介绍过，表数据可以是ASCII格式、二进制格式 或netCDF格式。ASCII格式很直观，可以直接看到有多少列数据。 而二进制格式的数据，GMT在读入数据时无法数据有多少列，也无法知道每一列的格式。 因而需要使用 -b 选项告诉GMT输入或输出数据的具体格式。

-b 的语法是：

> -b[i|o][ncols][type][w][+l|b]

-bi 表示对输入有效，-bo 表示对输出有效。 后面紧跟着指定有 ncols 列个 type 类型的数据，多个 ncols type 之间可以 用逗号分隔。w 表示对这些列数据强制做字节序转换。 +l 或 +b 表示整个数据按照little-endian或big-endian字节序读入。

GMT支持的数据类型 type 可以取：

- c：即 int8_t，字符型

- u：即 uint8_t，无符号字符型

- h：即 int16_t，两字节有符号整型

- H：即 uint16_t，两字节无符号整型

- i：即 int32_t，四字节有符号整型

- I：即 uint32_t，四字节无符号整型

- l：即 int64_t，八字节有符号整型

- L：即 uint64_t，八字节无符号整型

- f：四字节单精度浮点型

- d：八字节双精度浮点型

- x：不代表某种数据类型，表示跳过 ncols 个字节

若未指定 ncols，则假定 ncols 为程序所期望的数据列数， 所有列均为 type 所指定的数据类型。

还可以使用 -h 选项 跳过二进制文件开头的若干个字节。

举几个例子：

1. -bi2f,1i 表示要读入的二进制数据中有3列，前两列是单精度浮点型， 最后一列为四字节有符号整型