노트 - getopt 함수
일반적으로 리 눅 스 의 각종 명령 은 많은 명령 행 인 자 를 선택 할 수 있 습 니 다. 예 를 들 어 gcc - g - lm foo. c - o foo. getopt () 는 명령 행 인 자 를 분석 하 는 함수 입 니 다.getopt 에 대해 계속 토론 하기 전에 옵션 (option) 과 옵션 매개 변수 (argument) 두 가지 개념 을 명 확 히 해 야 합 니 다.위의 예 에서 - g 중의 g, - o 중의 o 와 - lm 중의 l 은 옵션 이 고 - lm 중의 m 는 l 의 옵션 매개 변수 이 며 - o foo 중의 foo 는 o 의 옵션 매개 변수 입 니 다.따라서 우 리 는 옵션 이 두 가지 가 있다 는 것 을 알 게 되 었 다. 하 나 는 옵션 매개 변수 가 있 고 다른 하 나 는 옵션 매개 변수 가 없 는 것 이다.다음은 getopt () 에 대해 계속 토론 할 수 있 습 니 다.
우선 함수 설명: \ # include
다음은 간단 한 예 이다.
#include <stdio.h>
#include <unistd.h>
int main(int argc, char * argv[])
{
int aflag=0, bflag=0, cflag=0;
int ch;
// opterr = 0;
while ((ch = getopt(argc, argv, "ab:cd::")) != -1)
{
printf("optind: %d
", optind);
switch (ch) {
case 'a':
printf("HAVE option: -a
");
aflag = 1;
break;
case 'b':
printf("HAVE option: -b
");
bflag = 1;
printf("The argument of -b is %s
", optarg);
break;
case 'c':
printf("HAVE option: -c
");
cflag = 1;
break;
case 'd':
printf("HAVE option: -d
");
printf("The argument of -d is %s
", optarg);
cflag = 1;
break;
case '?':
printf("Unknown option: %c
",(char)optopt);
break;
}
}
}
절차 가 매우 간단 하 니 여기 서 설명 하지 않 겠 다.
변수 opterr 와 optind 가 모두 1 로 초기 화 되 었 습 니 다.명령 행 의 앞의 매개 변 수 를 생략 하려 면 getopt () 를 호출 하기 전에 optind 를 다른 값 으로 설정 할 수 있 습 니 다.getopt () 에서 오류 정 보 를 출력 하지 않 으 려 면 전역 변 수 를 opterr 로 0 으로 설정 하면 됩 니 다.GNU Linux 에 서 는 getopt 에 해당 하 는 확장 자 를 제공 합 니 다. 예 를 들 어 "-- help" 와 같은 긴 매개 변 수 를 지원 합 니 다.주로 getopt 를 제 공 했 습 니 다.롱 함수, 아직 완전히 배우 지 못 했 습 니 다. 배 운 후에 다시 한 편의 단문 으로 그것 을 소개 하 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.