utils.h和utils.c是wget中存放公用函数的文件,因此,utils.c中的函数主要是集中处理一些字符串、文件访问等。而utils引用的主要集中在在字符串操作和文件操作的函数,如xstrdup,open,open,fopen等。有些代码写的确实很简洁,如make_directory函数中的去掉字符串开头的‘/’, for (i = (*dir == '/'); 1; ++i),代码之美体现的很完美,简洁而有易于理解,同样的还有dir_matches_p函数中的char *p = *x + (**x == '/');。作者对程序的内存也是十分“节俭”的,若read_file函数中的 if (size > fm->length && fm->length != 0) fm->content = xrealloc (fm->content, fm->length);当缓冲区过大时缩小分配的内存。
utils.c文件中一些基本函数的简单说明
字符串处理函数,字符串的分割、合并、大小写转换、
xstrdup_lower 转换为小写字母
strdupdelim指定位置提取字符串
sepstring 分割字符串
aprintf 格式化输出字符串
concat_strings 连结字符串序列
fnmatch_nocase:忽略大小写进行通配符匹配
match_tail:判断字符串是否以特定的字符串结尾
free_vec:释放字符串向量
merge_vecs:合并字符串向量
vec_append:添加到字符串向量
时间处理函数,格式化时间
fmttime:格式化时间信息
time_str:按格式格式化时间
datetime_str:按格式格式化时间
fork_to_background
创建子进程,子进程脱离会话和进程组
文件操作函数
touch: 修改文件的访问时间
remove_link:移除链接文件
file_exists_p:判断文件是否存在
file_non_directory_p:判断是否为文件夹
file_size:文件大小
unique_name_1、unique_name:创建一个唯一的名称
unique_create:创建唯一的文件流
fopen_excl:以指定方式打开文件
make_directory:创建文件夹
file_merge:合并文件字符串
acceptable:判断文件是否可接受
subdir_p:判断一个文件夹是否为另一个文件夹的子文件夹
dir_matches_p:判断文件夹列表中是否有文件夹
suffix:返回文件的后缀名
has_wildcards_p:字符串是否包含通配符
has_html_suffix_p:是否包含html后缀
read_whole_line:从文件流中读取一行
read_file: 将文件内容读取的内存中
read_file_free:释放内存中的文件内容
有几个函数还不太清除具体的作用:in_acclist,accdir。
(待续......)
http://searchfocus.cublog.cn
阅读(1553) | 评论(0) | 转发(0) |