[완료]컴파일 에러메세지 c 파일 수정 부탁 드립니다.

wire101의 이미지

gcc -o kill-ppp kill-ppp.c
kill-ppp.c: In function ‘main’:
kill-ppp.c:16: warning: incompatible implicit declaration of built-in function ‘exit’

kill-ppp.c
===============================
#include
#include
#include
static char *trusted_env[]={"PATH=/usr/bin:/usr/sbin:/sbin:/bin",0};
main()
{
struct passwd *pwd;
int i;
uid_t uid;
for (i=0;i < NSIG;i++){ if(i!= SIGKILL && i!=SIGCHLD)
{(void) signal(i,SIG_IGN);}
}
uid=getuid();

if ( (pwd = getpwuid(uid))== (struct passwd *)0 )
exit(1);
setuid((uid_t)0);

execle("/usr/bin/killall","/usr/bin/killall","pppd",(char *)0,trusted_env);

setuid(uid);
exit(1);
}
================================

feanor의 이미지

#include들이 잘려서 보이지 않는데, stdlib.h를 #include하지 않았으면 하셔야 합니다.

wire101의 이미지

#include "signal.h"
#include "sys/param.h"
#include "pwd.h"
static char *trusted_env[]={"PATH=/usr/bin:/usr/sbin:/sbin:/bin",0};
main()
{
struct passwd *pwd;
int i;
uid_t uid;
for (i=0;i < NSIG;i++){ if(i!= SIGKILL && i!=SIGCHLD)
{(void) signal(i,SIG_IGN);}
}
uid=getuid();

if ( (pwd = getpwuid(uid))== (struct passwd *)0 )
exit(1);
setuid((uid_t)0);

execle("/usr/bin/killall","/usr/bin/killall","pppd",(char *)0,trusted_env);

setuid(uid);
exit(1);
}

머리가 나쁘면 손발이 고생한다

김일영의 이미지

exit() 함수 원형이 선언된 헤더 파일을 include 안해서 나오는 메시지입니다.
exit() 함수는 stdlib.h 에 선언되어 있으니까 #include 로 추가하세요.

(댓글에 부등호 표시를 넣으니까 HTML 태그랑 헷갈리는지 나오질 않네요... 쩝)

wire101의 이미지

감사 합니다.

머리가 나쁘면 손발이 고생한다