Slide 9
Slide 9 text
ソースコード(抜粋&コメント追加)
#define BUFSIZE 0x10
void win() { // この関数を呼び出せばFlagが取得できる
char 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);
}