buf[0x100]; int fd = open("flag.txt", O_RDONLY); if (fd == -1) err(1, "Flag file not found...\n"); write(1, buf, read(fd, buf, sizeof(buf))); close(fd); } int main() { int len = 0; char buf[BUFSIZE] = {0}; // BUFSIZEは0x10 puts("How long is your name?"); scanf("%d", &len); // バッファに読み込むデータの長さを入力 char c = getc(stdin); // 入力末尾の改行 if (c != '\n') ungetc(c, stdin); puts("What's your name?"); fgets(buf, len, stdin); // 指定された長さ分バッファに読み込む printf("Hello %s", buf); }