strlen计算不包含终止null字节的字符串长度,而sizeof则计算包括终止null字节的缓冲区长度
两者之间的另外一个差别是,使用strlen需要进行一次函数调用,而对于sizeof而言,因为缓冲区已用已知字符串进行了初始化,其长度是固定的,所以sizeof在编译时计算其缓冲区的长度。
如:char buf [ ] = " i love this world\n"
将其写到标准输出STDOUT_FILENO
if( write(STDOUT_FILENO, buf , sizeof(buf)-1 )!= sizeof(buf) - 1 )
err_sys( " write error" );