# 附录C 标准库
| 翻译: | 赵卫国 |
|-----|-----|
附录C 描述了 Erlang 标准库模块的一些函数。
### io
Io 模块提供了基本的输入输出。这儿的所有函数都有可选参数Dev它是一个用于输入输出的文件描述符。默认值是标准输入输出。
| format([Dev],F,Args) | 按格式F输出参数Args。 |
|-----|-----|
| get_chars([Dev],P,N) | 输出提示P并读出Dev的前N个字符。 |
| get_line([Dev],P) | 输出提示P并读出Dev的一行。 |
| n1([Dev]) | 输出新的一行。 |
| parse_exprs([Dev],P) | 输出提示P并从Dev中出Erlang表达式。如果成功返回{form,ExprList}, 否则返回{error,What}。 |
| parse_form([Dev],P) | 输出提示P,并把Dev解析成一个Erlang form。如果成功返回{form,Form},否则返回{error,What}。 |
| put_chars([Dev],L) | 输出列表L中的字符。 |
| read([Dev],P) | 输出提示P并且从Dev中读一项式。如果成功则返回{term,T}否则返回{error,What}。 |
| write([Dev],Term) | 输出Term。 |
### file
file模块提供了与文件系统的标准接口。
| readfile(File) | 返回{ok,Bin},其中Bin是一个包含文件File内容的二进制数据对象。 |
|-----|-----|
| writefile(File,Binary) | 把二进制数据对象Binary中的内容写入到文件File中。 |
| get_cwd() | 返回{ok,Dir},其中Dir是当前工作目录。 |
| setcwd(Dir) | 把当前工作目录设为Dir。 |
| rename(From,To) | 把文件名From改为To。 |
| makedir(Dir) | 创建目录Dir。 |
| deldir(Dir) | 删除目录Dir。 |
| listdir(Dir) | 返回{ok,L},其中L是目录Dir中的所有文件列表。 |
| fileinfo(File) | 返回{ok,L},其中L是包含文件File信息的元组。 |
| consult(File) | 如果正确返回{ok,L},这里的L是文件File。 |
| open(File,Mode) | 打开文件File的模式Mode有三种,分别是read、write和read_write。如果成功打开返回{ok,File}, 失败则返回{error,What}。 |
| close(Desc) | 关闭文件Desc。 |
| position(Desc,N) | 把文件Desc的当前位置设为N。 |
| truncate(Desc) | 把文件Desc在当前位置截断。 |
### lists
list模块提供了标准列表进程函数.下面的参数中以L开头的都代表是列表。
| append(L1,L2) | 返回L1+L2。 |
|-----|-----|
| append(L) | 把L中所有子列表附加起来的。 |
| concat(L) | 把列表L中的所有原子式合并形成一个新的原子。 |
| delete(X,L) | 返回把L中第一个出现的X删除后的列表。 |
| flat_length(L) | 和length(flatten(L))等价。 |
| flatten(L) | 返回对L进行扁平化处理后的列表。 |
| keydelete(Key,N,LTup) | 返回列表LTup删除它的第一个元组中第N个元素是Key的元组后的列表。 |
| keysearch(Key,N,LTup) | 遍历元组列表LTup,查找一个第N个元素是Key的元组,若找到返回{value,X};否则返回false。 |
| keysort(N,LTup) | 返回有LTup中一系列元组的分类的版本,这其中的第N个元素用来作关键字。 |
| member(X,L) | 若X是列表L中的成员返回true, 否则返回false。 |
| last(L) | 返回L的最后一个元素。 |
| nth(N,L) | 返回L的第N个元素。 |
| reverse(L) | 把L中最上层的元素反转。 |
| reverse(L1,L2) | 和append(reverse(L1),L2)等价。 |
| sort(L) | 对L进行排序。 |
### code
code模块用于载入或操纵编译过的代码。
| set_path(D) | 把代码服务器查询的路径设为目录D。 |
|-----|-----|
| load_file(File) | 在当前路径上加载文件File.erl。加载成功返回{module,ModuleName};失败返回{error,What}。 |
| is_loaded(Module) | 检验模块Module是否已经加载.若已加载返回{file,AbsFileName},否则返回false。 |
| esure_loaded(Module) | 加载之前未加载的模块,它的返回值和load_file(File)一样。 |
| purge(Module) | 清楚模块Module中的代码。 |
| all_loaded() | 返回所有载入模块的元组{Module,AbsFileName}。 |