Linux应用程序设计
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.5 常用系统函数

2.5.1 内存操作函数

常用的内存操作函数如表2-7所示。

表2-7 常用的内存操作函数

程序可以使用malloc()函数和calloc()函数来动态分配内存,函数语法如表2-8和表2-9所示。

表2-8 malloc()函数语法

表2-9 calloc()函数语法

malloc和calloc这两个函数都是返回指针,该指针指向分配好的内存,如果内存分配失败,将为一个空指针NULL,并设置变量errno为错误码值。在使用上,两个函数略有差异:

(1)malloc函数所分配的字节数通过参数size指定,而calloc函数所分配的内存大小为nmemb*size确定。

(2)calloc函数会将分配后的内存用0填充,而malloc函数分配的为原始内存,可能包含未初始化的数据。

分配内存后常用的内存操作主要包括复制、清除等,标准库提供了操作任意内存块的函数,常用memcpy()和memset()函数,其函数语法如表2-10和表2-11所示。

表2-10 memcpy()函数语法

表2-11 memset()函数语法

Memcpy()函数的功能是将源内存块的数据复制到目的内存块中,即从src处复制count字节的数据到dest,而memset()函数将参数val的值复制到buf的前count个字节中去,常使用该函数清除内存块,memset()可以用于任意的内存类型,即使静态分配的内存,如数组,也可以使用该函数。

2.5.2 字符串操作函数

常用的字符串操作函数如表2-12~表2-18所示。

表2-12 常用的字符串操作函数

表2-13 strcpy()函数语法

表2-14 strcmp()函数语法

表2-15 strcat()函数语法

表2-16 strlen()函数语法

表2-17 strchr()函数语法

表2-18 strstr()函数语法

2.5.3 时间操作函数

常用的时间操作函数如表2-19~表2-21所示。

表2-19 常用的时间操作函数

表2-20 time()函数语法

表2-21 localtime()函数语法