완료됨
사소한 것인데요

아래 사용자에게 인자를 입력받는 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이네요!

2022.12.14. 13:25