int port, ch; while((ch=getopt(argc, argv, "p"))!=EOF) { switch(ch) { case 'p': port=atoi(optarg); break; default: exit(0); } } printf("port: %d\n", port);
./port -p 4941 Segmentation fault (core dumped)
getopt(3)의 세번째 인수는 "p"가 아니라 "p:"여야할 것 같습니다.
#include <stdlib.h> #include <unistd.h> #include <stdio.h> int main(int argc, char *argv[]) { int port, ch; while ((ch = getopt(argc, argv, "p:")) != EOF) { switch (ch) { case 'p': port = atoi(optarg); break; default: exit(EXIT_SUCCESS); } } printf("port: %d\n", port); return (EXIT_SUCCESS); }
> cc -o port port.c > ./port -p 4941 port: 4941 >
-- 자본주의, 자유민주주의 사회에서는 결국 자유마저 돈으로 사야하나보다. 사줄테니 제발 팔기나 해다오. 아직 내가 "사겠다"고 말하는 동안에 말이다!
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
getopt(3)의 세번째 인수는 "p"가 아니라 "p[b]:[/b]"여
getopt(3)의 세번째 인수는 "p"가 아니라 "p:"여야할 것 같습니다.
잘 실행되는군요:
--
자본주의, 자유민주주의 사회에서는 결국 자유마저 돈으로 사야하나보다.
사줄테니 제발 팔기나 해다오. 아직 내가 "사겠다"고 말하는 동안에 말이다!
댓글 달기