오버 플로우 수 내 C++ 프로그램에서 C 함수를 포함 할 필요가, g로 코드를 컴파일 할 때 ++ 나는 다음과 같은 경고 얻을 :그램 + + + 함수 역시 : 대상 버퍼를
In function ‘char* strncat(char*, const char*, size_t)’,
inlined from ‘int get_usage(pid_t, pstat*)’ at src/getusage.c:24:
/usr/include/bits/string3.h:154: warning: call to
char* __builtin___strncat_chk(char*, const char*, long unsigned int,
long unsigned int) might overflow destination buffer
코드 :
int pidof(const char* process_name){
char cmd[50] ="pidof ";
strncat(cmd, process_name, sizeof(cmd) - strlen(cmd) -1);
[..]
을
이 경고는 어떻게 제거합니까?
Welcome to StackOverflow! FAQ 주위를 둘러보십시오 : http://stackoverflow.com/faq –
ouh, stupid mistake :) 오류 메시지를 잘못 읽었습니다. 오류가 다른 매개 변수를 사용하여 다른 크기의 매개 변수로만 버퍼 크기를 전달했습니다. :) – fho
std :: string을 사용해야합니다. 사용하기가 더 쉽습니다. 연결에 대한 지원이 내장되어 있으며 사용하기에 더 안전합니다. – bruno