완료됨
사소한 것인데요
아래 사용자에게 인자를 입력받는 c코드에서 인자를 넣지 않을 경우 Give me the argv[2]! 메시지가 뜨는데 코드내에서는 하나의 인자를 필요로하고argv[1]을 사용하기때문에 해당 메시지는 인자를 2개 넣으라는 메시지로 오해할 수 있기 때문에 Give me the argv[1]! 문구가 맞는거 아닌가 싶습니다. 다른 의도가 있는건지 제가 잘못이해한건가 싶어서 질문올려 봅니다.
// Name: debugee2.c
// Compile: gcc -o debugee2 debugee2.c -no-pie
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
char name[20];
if( argc < 2 ) {
printf("Give me the argv[2]!\n");
exit(0);
}
memset(name, 0, sizeof(name));
printf("argv[1] %s\n", argv[1]);
read(0, name, sizeof(name)-1);
printf("Name: %s\n", name);
return 0;
}
#시스템해킹
#툴
#gdb
작성자 정보
답변
1
탈퇴한 이용자
대표 업적 없음
저도 그렇게 생각합니다.
Give me the argv[2]!
보다는 Usage: ./debugee2 argv
같은 형식으로 사용법을 출력하는게 일반적이죠
추가로 이러한 에러 메시지는 보통 stdout이 아닌 stderr로 출력해야 하는데 stdout으로 출력했고, exit code 또한 1이 아니라 정상 종료를 의미하는 0이네요!