加入收藏 | 设为首页 | 会员中心 | RSS
您当前的位置:首页 > Linux技术 > 编程开发

sizeof()与strlen()的区别

时间:2008-06-06 10:56:53  来源:  作者:
#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
//#include <errno.h>


int glob =6 ;
char buf[]="a write a stdout/n";

int main(void)
{
    int var ;
    pid_t pid ;
    var = 88 ;
    if(write(STDOUT_FILENO , buf , sizeof(buf)-1) != sizeof(buf)-1)
        {
            printf("write error/n");
        }
    printf("before fork /n");
    if((pid = fork()) <  0)
        {
            printf("fork error/n");
        }
    else if(pid==0)
        {
            glob++;
            var++;
        }
    else
        {
            sleep(2);
        }
        
    printf("pid = %d , glob = %d , var = %d/n" , getpid() , glob , var);
   
    exit(0);
}

这里用strlen计算不包含终止null字节的字符串长度。而sizeof则计算包括终止null字节的缓冲区长度。
两者的另一个区别是:使用strlen需要进行一次函数调用,而对于sizeof而言,因为缓冲区已经用已知字符串进行了初始化,其长度是固定的,所以sizeof在编译时计算缓冲区长度。
来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
相关文章
    无相关信息
栏目更新
栏目热门