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()函数语法