写入(write)
使用write函数需要包含以下头文件:
#include <unistd.h>
write的函数定义格式
ssize_t write(int fd, const void *buf, size_t count);
函数定义的参数解读
int fd:fd为创建文件的文件描述符
const void *buf:这里为无类型的指针,通常对他进行强转成字符串:buf为要写入的字节
size_f count:写入字节的长度(使用strlen而不是使用sizeof计算字节长度)
sizeof
- 类型:
sizeof
是一个编译时运算符,不是一个函数。- 功能:它返回的是变量、数据类型或表达式的大小,以字节为单位。这包括了任何内部的填充字节和结束符(如果有的话)。
- 计算时机:其值在编译时期就被确定,因此不需要运行时计算。
- 应用实例:可以用在任何类型或变量上,如
sizeof(int)
或sizeof(array)
。strlen
- 类型:
strlen
是一个库函数,定义在<string.h>
头文件中。- 功能:它计算的是从指定的字符数组的初始位置到它遇到的第一个空字符(
\0
)之前的字符数量,不包括结束符本身。- 计算时机:其值只能在运行时计算,因为需要遍历整个字符串直到遇到
\0
结束符。- 应用实例:仅应用于以空字符终止的字符数组(C 字符串),如
strlen("Hello")
返回 5。示例说明
char str[] = "Hello, World!"; printf("Size of str: %zu\n", sizeof(str)); // 输出包括 '\0' 在内的整个数组的大小,可能为 14 字节 printf("Length of str: %zu\n", strlen(str)); /