putenv()함수를 가지고 가변적인 값을 넣고싶습니다.

xoduddk123의 이미지

IPC의 FIFO통신을 가지고 프로그램을 만들고있습니다

파라미터로 받은값을 환경변수에다가 넣기위하여

putenv()함수를 써서 사용을 하는데 오류가 나오는데 어떻게 해야될지 잘 모르겠습니다.

printf()함수처럼 %d를 사용해봤는데 잘되지가 않습니다

putenv("TIME=%d", atoi(argv[1]));

문제가된 함수입니다 TIME이라는 환경변수에 가변적으로 값이 들어가야되서 printf문처럼 %d를 통해서 값을 넣을려고 했는데 error가 발생합니다.

main_sender.c: In function ‘main’:
main_sender.c:49:3: error: too many arguments to function ‘putenv’
In file included from main_sender.c:4:0:
/work/toolchain/gcc-linaro-arm-linux-gnueabihf-4.7-2012.10-20121022_linux/bin/../arm-linux-gnueabihf/libc/usr/include/./stdlib.h:579:12: note: declared here

방법이 없을까요? ㅜㅜ

김정균의 이미지

man putenv를 확인해 보시면 그렇게 사용할 수 없다는 것을 아실 수 있을텐데요.

char buf[1024] = { 0, };
sprintf (buf, "TIME=%d", atoi (arvg[1]));
putenv (buf);

와 같이 하시면 되겠습니다.