c程序中的一个小问题
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<fcntl.h>
#include<sys/types.h>
#include<unistd.h>
#include<sys/wait.h>           
#define MAXFILE 65535
int main()
{
	pid_t pc;
	int i,fd,len;
	char *buf="This is a Dameon\n";
	len =strlen(buf);
	pc=fork();  
	if(pc<0){
		printf("error fork\n");
		exit(1);
	}else if(pc>0)
	exit(0);
	setsid();
	chdir("/");
	umask(0);
	for(i=0;i<MAXFILE;i++)
		close(i);
	while(1){
		if((fd=open("/tmp/dameon.log",O_CREAT|O_WRONLY|O_APPEND,0600))<0){
			perror("open");
			exit(1);
			}
		write(fd, buf, len+1);
		close(fd);
		sleep(10);
	}
}
这是我今天看linux程序设计当中的一段代码,功能是:首先建立一个守护进程,然后让该守护进程每隔10s在/tmp/daemon.log中写入一句话。但是倒数第五行我有个地方看不懂,为什么是len+1呀?不知道为什么要+1,我试着没加1,程序还是能按预期运行的,这个事情我碰到很多次了,但是就是不懂它为什么要+1,希望哪位好心的高手大侠能帮小弟解决下这个问题!感激不尽!
------解决方案--------------------
字符串最后有一个字节的结束标记,为0