0
次のcプログラムは、親プロセスから子プロセス(fork()を使用して作成)にパイプ経由でメッセージを送信するために使用され、Linux端末で実行されます。メッセージ末尾の不要文字の取得
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
int main(int argc,char *arg[]){
pid_t child;
int pipefd[2];
int ret;
char message[20];
ret =pipe(pipefd);
if((child=fork())==0){
printf("The child process \n");
close(pipefd[0]);
write(pipefd[1],"Hello from parent",17);
}
else{
close(pipefd[1]);
read(pipefd[0],message,17);
printf("Message from parent %s\n",message);
}
return 0;
}
上記のコードでは、「Hello from parent」というメッセージが表示されますが、親部分の末尾に@記号が印刷されています。理由は何ですか?どうすれば修正できますか?