size_t
size_t
是一个无符号整数类型,通常用于表示对象的大小,比如数组、字符串等。- 它的大小至少为 16 位,但具体大小取决于编译器和平台。在32位系统中,
size_t
通常是32位的;在64位系统中,size_t
通常是64位的。 size_t
常用于函数参数和返回值,比如 strlen
函数返回字符串的长度,类型为 size_t
。
ssize_t
ssize_t
是一个有符号整数类型,通常用于表示可以返回负值的函数的返回值。- 它的大小与
size_t
相同,但可以表示负数。这使得 ssize_t
可以用于错误处理,比如文件操作函数可能会返回 -1
表示失败。 ssize_t
常用于需要返回错误代码或负数的函数,比如 read
和 write
函数。这些函数返回读取或写入的字节数,如果操作失败,则返回 -1
。
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello, World!";
size_t length = strlen(str);
printf("String length: %zu\n", length);
int fd = open("example.txt", O_RDONLY);
if (fd == -1) {
perror("Failed to open file");
return 1;
}
char buffer[256];
ssize_t bytes_read = read(fd, buffer, sizeof(buffer));
if (bytes_read == -1) {
perror("Failed to read file");
close(fd);
return 1;
}
close(fd);
return 0;
}