영어프랑스어스페인어

Ad


온웍스 파비콘

icmake - 클라우드에서의 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 제공업체에서 icmake를 실행하세요.

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 icmake 명령입니다.

프로그램:

이름


icmake - 프로그램 유지 관리(확인) 유틸리티를 사용하는 C- 문법 같은 것

개요


아이메이크 [옵션] 소스[.im] [대상[.bim]] [-- [인수]]

ICmun bim파일

기술


아이메이크(1)은 다음의 대안으로 사용될 수 있습니다. 확인(1). 표준 작동 모드에서는
다음 프로그램을 호출합니다.

o icm-pp icmake 파일을 전처리하려면

o icm-comp 바이트 코드로 컴파일하려면 아이메이크 s

o icm-exec 바이트 코드 파일을 실행하려면

아이메이크 프로그래머가 프로그래밍 언어(잘 알려진 언어와 매우 유사)를 사용할 수 있도록 허용합니다.
C-프로그래밍 언어) (복잡한) 프로그램과 관련된 동작을 정의합니다.
유지. 이를 위해, 아이메이크 다양한 특수 연산자와 일련의 지원을 제공합니다.
프로그램 유지 관리에 유용하다고 입증된 기능입니다.

프로그램 ICmun(1)은 컴파일된 바이트 코드(.bim) 파일을 디스어셈블하는 데 사용할 수 있습니다. 익문
주로 일러스트레이션, 교육 및 디버깅에 사용됩니다.

기존의 make 유틸리티는 헤더 파일이 수정되면 소스를 다시 컴파일합니다. 에서
컨텍스트 C + + 프로그램 개발에 새로운 구성원을 추가하는 것은 종종 나쁜 생각입니다.
클래스는 일반적으로 클래스 소스를 다시 컴파일할 것을 요구하지 않습니다. 수업을 처리하려면
의존성 아이크벌드(1) 검사할 수 있다 클래스 종속성을 정의하는 데 사용할 수 있는 파일
수업 중. 기본적으로 클래스 종속성은 해석되지 않습니다. 다음을 참조하세요. icmconf(7)
자세한 내용은 맨페이지를 참조하세요.

옵션


아이메이크 다음 파일과 옵션을 사용합니다.

o : 아이메이크 스크립트 소스 파일(기본 확장자: .im).

o 목적지: 바이너리 아이메이크 스크립트 파일(기본값: `소스'.bim, '.bim 파일'이라고 함
아래).

o --: 아이메이크 인수 구분 기호 분리 아이메이크 전달된 인수의 인수
.bim 파일nl()에 인수: 다음 인수 -- .bim 파일로 전달됩니다.
있는 그대로이며 다음에서 사용할 수 있습니다. 명부 인수 다음과 같이 정의된 매개변수 아이메이크
스크립트의 본관 함수의 두 번째 매개변수(아래 섹션 참조) USER 한정된
기능). 일부 옵션(아래 참조)의 경우 -- 구분 기호는 필요하지 않습니다.

아이메이크 다음에 설명된 다양한 옵션을 지원합니다. 그만큼 -h 옵션이 다른 모든 옵션보다 우선합니다.
옵션, -a 옵션은 다음을 제외한 다른 모든 옵션보다 우선합니다. -h. 남은 행동 중
옵션(-NS, -씨, -이자형, -NS, -p-t) 하나만 지정할 수 있습니다:

o -a
에 대한 정보를 표시합니다 아이메이크, 다음에 의해 기각됨 -h;

o -b
중단됨: 대신 -e 옵션을 사용하십시오.

o -c
전에, 아이메이크 소스 파일이 컴파일되어 .bim 파일이 생성됩니다.

o -e
실행 아이메이크 .bim 파일, 다음과 같이 지정됨 아이메이크의 첫 번째 파일 인수입니다. 추가적인
인수는 있는 그대로 .bim 파일에 전달됩니다. -- 지정해서는 안 됩니다.

o -F
파일 이름과 플래그는 물론 수행할 모든 작업에 대한 개요
아이메이크 표준 출력 스트림에 표시됩니다.

o -h
사용정보 제공 후 종료 아이메이크;

o -i
첫 번째 인수는 아이메이크 소스 파일, 기본 바이너리 파일은 다음과 같습니다.
필요한 경우 건설됩니다. 추가 인수는 .bim 파일에 전달됩니다.
있는 그대로 그리고 -- 지정해서는 안 됩니다.

o -p
전에, 아이메이크 소스 파일은 전처리만 하고, 전처리된 파일은 기록됩니다.
아이메이크의 두 번째 파일 인수(기본적으로 `소스'.pim);

o -q
무시되었습니다. 향후 삭제될 예정입니다. 아이메이크 버전;

o -t
다음 인수 -t 제거되는 임시 .bim 파일의 이름입니다.
시간 내에 아이메이크님의 전화입니다. 언제 . 임시 .bim 파일의 이름으로 지정됩니다.
기본 임시 디렉토리, 그 다음 아이메이크의 프로세스 ID 다음에
.bim 사용.

임시 .bim 파일 이름 다음에는 아이메이크 소스 스크립트
지정해야 합니다. 추가 인수는 있는 그대로 .bim 파일에 전달됩니다.
-- 지정해서는 안 됩니다. 소스 스크립트 파일의 실행 플래그를 설정한 후
(chmod를 +x 스크립트), 다음과 같은 초기 라인을 제공합니다.

#!/usr/bin/icmake -t.

전에, 아이메이크 스크립트를 직접 호출할 수 있습니다.

스크립트 인수1 인수2

이 경우 아이메이크 스크립트 '스크립트' 수신하는 동안 실행됩니다.
인수 스크립트 arg1 arg2.

o -T
이 옵션은 저장하는 데 사용되는 디렉터리 이름과 함께 제공되어야 합니다.
임시 파일. 예를 들어, 아이메이크 스크립트, 출력 아이메이크
전처리기는 종료 시 제거되는 임시 파일입니다. 기본적으로 / TMP 사용,
...을 제외하면 / TMP 쓰기 가능한 디렉토리가 아닙니다. 이 경우 현재 사용자의 $ HOME
디렉토리가 사용됩니다. 암시적 임시 파일 이름은 항상 프로세스 ID로 시작됩니다.
현재 아이메이크 프로세스.

o -v
디스플레이 아이메이크의 버전 번호 및 끝 아이메이크, 다음에 의해 기각됨 -h

익문:

bim파일: 바이너리 아이메이크 스크립트 파일.

전처리기 지시문


다음 전처리기 지시문을 사용할 수 있습니다.

o 코멘트:
표준 C 코멘트(모두 사이 /**/) 및 주석부터 줄 끝까지(모두
다음 줄 내용 //) 무시됩니다.

o 셸 시작: 첫 번째 줄 아이메이크-스크립트는 다음으로 시작할 수 있습니다. #!길어디로
통로 절대 위치를 정의합니다. 아이메이크 프로그램. 스크립트를 작성하여
실행 가능하므로 명시적으로 호출하지 않고도 호출할 수 있습니다. 아이메이크.

예를 들어, (실행 가능한) icmakefile의 첫 번째 줄이 'icm'(확장자 없음)인 경우
이 포함되어 있습니다

#!/usr/bin/icmake -i

그때 icm 명령으로 실행될 수 있으므로 실행됩니다.

/usr/bin/icmake -i icm ...

또한,

#!/usr/bin/icmake -t /tmp/icm

사용될 수 있으며 결과적으로 다음이 실행됩니다.

#!/usr/bin/icmake -t /tmp/icm icm ...

이 경우 바이너리 파일은 종료 시 제거됩니다.

o #포함 "파일 이름"
파일 파일 이름 지시어 위치에 포함되어 있습니다.

o #포함
파일 파일 이름 위치에 포함되어 있습니다. #포함 지령; 파일 이름
다음에 의해 지정된 콜론으로 구분된 디렉토리에서 검색됩니다. IM 환경
변하기 쉬운. 첫 번째 발생 파일 이름 에 의해 지정된 디렉토리에서 IM
환경 변수가 사용됩니다.

o #밝히다 식별자 [정의]
텍스트 식별자 다음으로 대체됩니다. 정의. 정의에는 다음이 포함될 수 있습니다.
이미 정의된 식별자에 대한 참조 ${식별자} 체재. 만약
${식별자} (아직) 정의되지 않았습니다. ${식별자} 말 그대로 유지됩니다.
최대 100번의 무한 재귀를 방지하려면 ${식별자} 교체가 허용됩니다.

줄의 마지막 문자가 다음 줄인 경우 정의는 다음 줄에서 계속됩니다.
백슬래시(\). (이는 정의에 포함되지 않습니다). 전처리기
큰따옴표로 묶인 문자열을 연결하고 큰따옴표로 묶은 문자열은 여러 개에 걸쳐 있을 수 없습니다.
윤곽. 정의에 있는 여러 개의 공백(큰따옴표로 묶인 문자열 외부)은 다음과 같습니다.
하나의 공백으로 축소되었습니다.

다음에 나오는 정의는 #정의 식별자는 선택 사항입니다. 생략된 경우,
매크로가 정의되어 있으므로 다음에서 사용할 수 있습니다. #if(n)def 지시문(아래 참조)이 있지만
텍스트로 대체되지 않습니다. 아이메이크 코드 문.

o #ifdef 식별자
경우 식별자 매크로는 다음 코드 블록에서 정의되었습니다(일치하는 코드가 나올 때까지). #그밖에
or #endif 지시문을 읽었음)은 바이트 컴파일됩니다. 그렇지 않으면 코드 블록은 다음과 같습니다.
무시되었습니다.

o #ifndef 식별자
경우 식별자 매크로는 지원 다음 코드 블록을 정의했습니다(일치하는 코드가 나올 때까지).
#그밖에 or #endif 지시문이 감지됨)은 바이트 컴파일됩니다. 그렇지 않으면 블록의
코드는 무시됩니다.

o #그밖에
종료 #ifdef#ifndef 지시문에 대한 승인 결정을 취소합니다.
다음 코드. 단 하나 #그밖에 지시문은 다음과 연관될 수 있습니다. #if(n)def
가이드 라인.

o #endif
일치하는 부분에서 시작하는 전처리기 블록을 종료합니다. #ifdef, #ifndef or #그밖에
지령. 그만큼 #endif 디렉토리와 일치 #if(n)def 지시문은 다음과 같아야합니다
동일한 파일에 지정됩니다.

o #언데프 식별자
제거 식별자 정의된 기호 세트에서. 이는 영향을 미치지 않습니다.
이전에 정의된 기호의 사양 식별자 정의
사용 되왔다. 만약에 식별자 정의되지 않았으므로 경고가 발행됩니다.

데이터 타입


아이메이크 다음 데이터 유형을 지원합니다.

o ASCII 문자 상수
ASCII 문자 상수는 단일 문자 또는 이중 문자로 둘러싸인 하나의 문자로 구성됩니다.
인용 부호. 단일 문자(예: 'ㅏ') 캐릭터 자체를 나타냅니다. 기준
이스케이프 시퀀스(예: '\N')이 지원되며 표준 변환을 나타냅니다.
값(예: '\N' ASCII 값 10(십진수)을 나타냅니다. 비표준 탈출
시퀀스(예: '\엑스') 이스케이프 문자 뒤에 오는 ASCII 문자를 나타냅니다.
(그래서 '\엑스' 같음 '엑스'). 세 개의 XNUMX진수로 구성된 이스케이프 시퀀스는 다음을 나타냅니다.
모듈로 256의 XNUMX진수 값에 해당하는 ASCII 문자(예: '\123').
x와 그 뒤에 오는 두 개의 XNUMX진수 숫자로 구성된 이스케이프 시퀀스는 다음을 나타냅니다.
XNUMX진수 값에 해당하는 ASCII 문자(예: '\xa4').

o INT
다음과 같은 적분 값 -0x8000 을 통하여 0x7fff. INT 상수는
1진수(9부터 XNUMX까지의 숫자로 시작), XNUMX진수로 지정됩니다.
(0으로 시작하고 하나 이상의 XNUMX진수가 옵니다.) XNUMX진수
(0x로 시작하고 그 뒤에 하나 이상의 XNUMX진수 숫자가 옴) 또는 ASCII
문자 상수.

o
텍스트 변수. 문자열 상수는 큰따옴표로 구분됩니다. 다중 문자열
상수는 연결될 수 있지만 단일 문자열 상수는 여러 개에 걸쳐 있을 수 없습니다.
윤곽. 공백으로만 구분된 문자열 상수(예: 공백, 줄 바꿈,
comment)은 연결되어 하나의 단일 문자열 상수를 나타냅니다. 표시하려면
문자열 상수의 줄 끝은 다음을 사용합니다. \n 탈출 시퀀스.

큰따옴표로 묶인 ASCII 문자 상수도 사용할 수 있습니다.
피연산자 중 하나가 다음인 경우 산술 표현식 INT. 단일 문자
문자열 상수 절대로 필요한 것 상수가 될 수는 있지만 변하기 쉬운.

마찬가지로 작은따옴표로 묶인 ASCII 문자 상수를 다음과 같이 사용할 수 있습니다.
문자열 피연산자가 필요한 상황.

o 명부
개별적으로 접근 가능한 일련의 데이터 구조를 포함하는 데이터 구조 가치. 언제
목록에는 요소가 포함되어 있으며 첫 번째 요소는 인덱스 0으로 표시됩니다.

o 무효화
함수 정의와 함께 사용되어 함수가 다음을 반환하지 않음을 나타냅니다.
값.

변수는 전역 수준뿐만 아니라 내부의 모든 로컬 수준에서 정의할 수 있습니다.
기능. 함수 내부에서 정의하면 표준 C 범위 지정 및 가시성 규칙
적용하다. 예를 들어 지역 변수는 자체 변수나 더 깊게 중첩된 변수에만 사용할 수 있습니다.
블록의 가시성은 동일하게 정의하여 더 깊게 중첩된 블록에서 가려집니다.
더 깊게 중첩된 블록 내부에 명명된 변수가 있습니다. 변수는 강력한 형식이고
유형을 가질 수 없습니다 무효화.

변수는 정의될 때 초기화될 수 있습니다. 초기화는 표현식입니다.
사전 정의 또는 사용자 정의 함수, 상수 값, 변수 값을 사용할 수 있습니다.
정의 시점에서 볼 수 있습니다.

미리 정의 상수


다음 상수는 다음과 같이 사전 정의됩니다. 아이메이크. 모두 일정하다 INT 값 :

───────────────────────────────────
의도된 기호 값
───────────────────────────────────
O_ALL 8개 메이크리스트
O_DIR 2 메이크리스트
O_FILE 1 메이크리스트
O_SUBDIR 4 메이크리스트
───────────────────────────────────
꺼짐 0 에코
에코 1개 켜짐
───────────────────────────────────
P_CHECK 0 시스템 호출
P_NOCHECK 1 시스템 호출
───────────────────────────────────
S_IEXEC 32 통계
S_IFCHR 1 통계
S_IFDIR 2 통계
S_IFREG 4 통계
S_IREAD 8 통계
S_IWRITE 16 통계
───────────────────────────────────

다음 상수는 아키텍처에 따라 다릅니다.

───────────────────────────────────────────────── ────────────
플랫폼에 정의된 경우 기호 1, 그렇지 않은 경우 0
───────────────────────────────────────────────── ────────────
unix Unix, 일반적으로 GNU의 gcc 컴파일러 사용
UNIX를 대안으로 사용할 수 있습니다.
Linux를 실행하는 linux x86(보통 gcc 사용)
LINUX를 대안으로 사용할 수 있습니다.
SCO/Unix를 실행하는 M_SYSV, M_UNIX x86
_POSIX _SOURCE Posix 호환 컴파일러가 포함된 Unix
__hpux HP-UX(기본 HP 컴파일러 포함)
───────────────────────────────────────────────── ────────────

운영자


정수형 피연산자:

All C 연산자를 사용할 수 있습니다(포인터 연산자 제외). 아이메이크 지원하지 않습니다
포인터). 그들은 그들의 것처럼 작동합니다 C-프로그래밍 언어 대응물.

문자열 유형 피연산자:

럭셔리 유형 변수 및/또는 상수에는 다음 연산자를 사용할 수 있습니다(ab
대표 변수 또는 상수):

o a + b: 새로운 것을 반환합니다 연결을 포함하는 값 a
b. 그 주 상수는 직접 연결될 수 있습니다( +
연산자), 예를 들어 다음 두 줄은 모두 문자열을 정의합니다. "안녕하십니까 세계":

"안녕하세요" "세상"
"안녕하세요" + "세상"

o a += b: a ~이어야합니다. 변수는 변수 또는 값 b is
추가됨.

o 문자열 비교: 연산자 == != <= >= < > !=== 적용될 수 있습니다
값 또는 변수, 비교에 성공하면 1을 반환하고 그렇지 않으면 0을 반환합니다.
비교는 대소문자를 구분하며 정의된 순서나 문자를 따릅니다.
FBI 증오 범죄 보고서 ASCII 문자 집합.

o !a: 부울 ! (not) 연산자는 다음과 같은 경우 1을 반환합니다. a 비어 있고, 그렇지 않으면 0입니다.
반환되었습니다.

o a 더 어린 b, a 더 새로운 b: 파일인 경우 1을 반환합니다. a 파일보다 최신입니다. b. 예,
"소스.cc" 더 새로운 "소스.o". 파일 ab 반드시 존재할 필요는 없습니다: 둘 다 존재하지 않는 경우
존재 0이 반환됩니다. 만약에 b 존재하지 않으면 1이 반환됩니다. 만약에 a 존재하지 않습니다 0은
반환; 동일하게 오래된 경우 0이 반환됩니다. (그만큼 존재 () 미리 정의된 기능
(아래 섹션 참조 미리 정의 기능)을 사용하여 명시적으로 테스트할 수 있습니다.
파일이 존재).

o a 이전 b: 파일인 경우 1이 됩니다. a 파일보다 오래되었습니다 b. 예, "libprog.a" 이전
"소스.o". 파일 ab 반드시 존재할 필요는 없습니다. 둘 다 존재하지 않으면 0입니다.
반환; 만약에 a 존재하지 않으면 1이 반환됩니다. 만약에 b 존재하지 않습니다. 0이 반환됩니다. 만약에
그들은 똑같이 오래되었습니다. 0이 반환됩니다.

o []: 인덱스 연산자는 문자열 변수나 상수에서 문자를 검색합니다.
문자열을 다음과 같이 반환합니다. rvalue. 따라서 다음 명령문은 OK로 컴파일됩니다.

// str1과 str2가 문자열이라고 가정합니다.
str1 = str2[3];

하지만 다음 문은 컴파일되지 않습니다.

str2[3] = "a";

잘못된 인덱스 값이 제공되면 빈 문자열이 반환됩니다.

o `백틱` 연산자(`문자열 명령`)
두 개의 역따옴표 사이에 있는 문자열은 다음과 같이 실행됩니다. Popen(3) 기능. 그만큼
문자열 인수에 저장된 명령에 의해 생성된 표준 출력은 다음과 같습니다.
목록으로 반환됩니다. 빈 목록은 명령을 실행할 수 없음을 나타냅니다.
실행될 수 있지만 출력이 생성되지 않은 명령은 목록을 반환합니다.
하나의 빈 요소를 포함합니다. 명령의 표준 오류 스트림 출력은 다음과 같습니다.
백틱 연산자에 의해 수집됩니다. 그러나 표준 쉘 리디렉션은 다음과 같을 수 있습니다.
표준 오류 스트림의 출력을 수집하는 데 사용됩니다. 예:

printf(`"ls"`); // 안에 있는 요소를 인쇄합니다.
// 현재 디렉토리

미리 정의된 함수 평가(문자열 cmd) 백틱과 똑같이 동작합니다
연산자: 동의어입니다.

목록형 피연산자:

럭셔리 명부 유형 변수 및/또는 값 다음 연산자를 사용할 수 있습니다.

o a + b: 새로운 것을 반환합니다 명부 연결을 포함하는 값 명부a
b. 이것은 지원 집합 연산: 요소가 두 요소 모두에 나타나는 경우 a 으로 혹은 b, 그들은 할 것이다
결과 목록에 두 번 나타납니다(세트 추가는 내장된
기능 목록).

o a - b: 새로운 것을 반환합니다 명부 요소를 포함하는 값 a 존재하지 않는 것
in b. 이 is 차이 집합 연산: 반환된 목록에는 모든 요소가 포함됩니다.
in a 의 요소가 아닌 것 b.

o a += b: 요소 b 의 요소에 추가됩니다. a, 이는 명부
변하기 쉬운. 이것은 지원 세트 연산.

o a -= b: 요소 b 의 요소에서 제거됩니다. a, 이는 명부
변하기 쉬운. 이것 is 집합 연산: 모든 요소 a 에서 발견되는 b are
에서 제거 a.

o 동등 비교 나열: 연산자 !=== 적용될 수 있습니다 명부 값 또는
변수. 운영자 == 두 목록의 요소별로 동일한 경우 1을 반환합니다.
요소, 그렇지 않으면 0이 반환됩니다. 운영자 != 의 결과를 뒤집는다 ==.

o !a: 부울 ! 연산자는 다음과 같은 경우 1을 반환합니다. 명부 a 비어 있고, 그렇지 않으면 0입니다.
반환되었습니다.

o []: 인덱스 연산자는 목록 변수에서 목록 요소를 검색합니다.
문자열로 rvalue. 따라서 다음 명령문은 OK로 컴파일됩니다.

// lst가 리스트이고 str이 문자열이라고 가정합니다.
str = lst[3];

하지만 다음 문은 컴파일되지 않습니다.

lst[3] = str;

잘못된 인덱스 값이 제공되면 빈 문자열이 반환됩니다.

주조 :

표준을 사용하여 타입 캐스트를 수행할 수 있습니다. C 캐스팅할 캐스트 연산자:

o 문자열을 int로 또는 그 반대로((int)"123", (문자열)55)

o 목록에 대한 문자열(명부 LST = (목록)"안녕하세요")

FLOW 통제


아이메이크 다음과 같은 하위 집합을 제공합니다. C의 진술. 다음과 같이 사용할 수 있습니다. C
프로그래밍 언어.

o 표현 ;
일반 표현문.

o 복합 진술
모든 유형의 변수는 모든 화합물 내부 어디에서나 정의되고 초기화될 수 있습니다.
성명서. 그만큼 가시성 변수는 정의 지점에서 시작됩니다.

o if (상태) 성명서
조건 내에서 변수를 정의하고 초기화할 수 있습니다. 예:

if (문자열 str = getText())
프로세스(str);

이 예에서, 방법 다음과 같은 경우에는 호출되지 않습니다. getText () 빈 문자열을 반환합니다. 그만큼
변수 하위 버전 이전에도 이후에도 존재하지 않습니다. if 성명서.

o if (상태) 성명서 그렇지 않으면 성명서
이전 명령문과 마찬가지로 조건 내부에 변수가 정의될 ​​수 있으며
초기화.

o for (초기화; 상태; 증가) 성명서
단일 유형의 변수는 다음에서 초기화(및 선택적으로 정의)될 수 있습니다.
INIT 부분. NS INIT, 조건증가 섹션은 비어 있을 수 있습니다. 그만큼
빈 조건 섹션은 '항상'으로 해석됩니다. 참된'.

o 동안 (상태) 성명서
조건 내에서 변수를 정의하고 초기화할 수 있습니다.
보완적인 do ... 하는 동안() 문을 사용할 수 없습니다. 다음을 정의하는 것에 유의하세요.
변수에서 초기화 표현식을 사용하는 것은 초기화를 의미합니다.
표현은 각 반복에서 실행됩니다. 동안 성명. 그래서 다음
문은 끝나지 않으며 값 10의 끝없는 스트림을 표시합니다.

동안 (int x = 10)
printf(x--, "\n");

o 반환;return 표현;
평원 return 명령문은 다음에서 사용될 수 있습니다. 무효화 기능 및 return 표현
명령문은 다른 유형의 함수에서 사용됩니다. 함수 본관 반환 유형이 있습니다
무효화 그래서 본관 그냥 평범한 return 문을 사용할 수 있습니다. 기본적으로 아이메이크
스크립트의 종료 값은 0입니다. 내장 함수를 사용하십시오. 출구 (아래 참조) 지정하다
다른 종료 값.

Be 조언 : 값을 반환하지 않는 void가 아닌 함수의 동작은 정의되지 않습니다.

o 하다
벌었지 for 동안 진술, 진술의 조건을 무시합니다.

o 계속
다음 반복으로 계속됩니다. for or 동안 성명서.

o 종료(표현)
실행을 종료합니다. 아이메이크-스크립트. 그만큼 표현 다음으로 평가해야 합니다. INT
값은 스크립트의 종료 값이 됩니다.

미리 정의 기능


아이메이크 다음과 같은 사전 정의된 기능을 제공합니다. 아이메이크
스크립트. 다음 개요는 함수 이름을 기준으로 알파벳순으로 정렬되어 있습니다.

o 무효화 인수(문자열 h)
도우미 기능 exec () (아래도 참조하세요. exec ()): `인수 헤드'를 정의합니다.
함께 사용하기 exec (). 기본적으로 `인수 헤드'는 빈 문자열입니다.

o 무효화 아르테일 (끈 t)
도우미 기능 exec () (아래도 참조하세요. exec ()): '인수 꼬리'를 정의합니다.
함께 사용하기 exec (). 기본적으로 `인수 꼬리'는 빈 문자열입니다.

o INT 아스키(문자열 s)
의 첫 번째 문자를 반환합니다. s int로; 예: 아스키("A") 65를 반환합니다.

o 아스키(int i)
반품 i 문자열로, 예를 들어, 아스키(65) 문자열을 반환 "A";

o 변경_베이스(문자열 파일 뉴베이스)
기본 이름을 변경합니다. 파일, 변경된 이름을 반환합니다. 예:
Change_base("/path/demo.im", "밖으로") 반품 "/경로/out.im";

o Change_ext(문자열 파일 최신)
확장자를 변경합니다. 파일, 변경된 이름을 반환합니다. 예:
rss_changeExt("source.cc", "영형") 반품 "소스.o";

o 변경_경로(문자열 파일 새로운 경로)
경로 지정을 변경합니다. 파일, 변경된 이름을 반환합니다. 예:
change_path("tmp/바이너리", "/ usr / bin") 반품 "/usr/bin/바이너리". 참고로
/-필요한 경우 구분 기호가 삽입됩니다.

o chdir(문자열 새로운 디렉토리)
스크립트의 작업 디렉터리를 변경하고 이전 디렉터리를 절대값으로 반환합니다.
통로.

chdir(".") 현재 작업 디렉토리를 얻으려면 chdir("") 사용할 수 있습니다
시작 작업 디렉토리 얻기(이 기능은 릴리스에서 중단됨)
7.00시 이전이지만 현재는 운영 중입니다). 이 함수는
아이메이크-지정된 경우 스크립트 뉴디르 존재하지 않는다.

o chdir(정수 확인 중, 새로운 디렉토리)
이전 기능과 동일한 기능이지만 다음을 지정하여 확인 as
P_NOCHECK. 함수는 스크립트를 종료하지 않습니다. 오히려 다음을 반환합니다.
스크립트의 현재 작업 디렉토리.

o cmdhead(문자열 h)
도우미 기능 exec () (아래도 참조하세요. exec ()): `명령 헤드'를 정의합니다.
~와 함께 사용하다 exec (). 기본적으로 `명령 헤드'는 빈 문자열입니다.

o cmdtail(문자열 t)
도우미 기능 exec () (아래도 참조하세요. exec ()): `명령 꼬리'를 정의합니다.
~와 함께 사용하다 exec (). 기본적으로 'command tail'은 빈 문자열입니다.

o 에코(정수 고르다)
호출된 프로그램(및 해당 인수)의 반향을 제어하고 다음을 지정합니다. 떨어져서 에코하는 경우
요청되지 않습니다. 기본적으로 에코(ON) 사용.

o 요소(정수 인덱스, 명부 (또는 끈) 변수)
인덱스 연산자와 동일하게 작동합니다. 인덱스([]) 연산자
섹션에 있어야 합니다. 운영자.

o 명부 평가(문자열 str)
이 함수는 백틱 연산자와 동일하게 작동합니다. 함께 제공되는 예시
그러므로 백틱 연산자는 다음과 같이 작성될 수도 있습니다:

printf(eval("ls")); // 현재의 요소를 인쇄합니다.
// 디렉토리

o exec(문자열 cmd, ~)
인수를 사용하여 명령을 실행합니다. 각 인수 앞에는 다음이 붙습니다. 인수()
인수와 접미사 아르테일()님의 주장입니다. 공백은 삽입되지 않습니다.
사이에 인수()의 내용, 적절한 인수 및 아르테일()님의 주장입니다. 모두
따라서 수정된 인수는 연결되며 이번에는 단일 공백으로 구분됩니다.
그때 cmd헤드()의 내용은 명령과 첫 번째 인수 사이에 삽입됩니다.
(양쪽은 단일 공백으로 구분됨) 및 cmdtail()님의 내용이 첨부되어 있습니다.
인수에 추가합니다(다시 한 번 공백으로 구분). PATH 찾기 위해 검색됩니다
cmd를. 0이 반환됩니다.

o exec(정수 체크cmd, cmd, ~)
이전 기능과 동일한 기능이지만 다음을 지정하여 확인 as
확인되지 않은 함수는 스크립트를 종료하지 않습니다. 오히려 다음을 반환합니다.
호출된 명령의 종료 상태, 또는 0x7f00 명령을 찾을 수 없는 경우.

o 실행(문자열 cmd, 명령, 아아아, ..., 인수, cmdtl)
과 동일 exec (), 그러나 명령 head/tail 및 인수 head/tail을 지정해야 합니다.

실제로 실행되는 명령은 다음으로 시작합니다. cmd를, 다음 cmdhd. 다음은 시리즈
인수는 다음과 같습니다. 각각은 다음으로 묶입니다. 아아아아인수. 명령은 다음으로 종료됩니다.
cmdtl. 0이 반환됩니다.

o 실행(정수 확인 중, cmd, 명령, 아아아, ..., 인수,
cmdtl)
이전 기능과 동일한 기능이지만 다음을 지정하여 확인 as
확인되지 않은 함수는 스크립트를 종료하지 않습니다. 오히려 다음을 반환합니다.
호출된 명령의 종료 상태, 또는 0x7f00 명령을 찾을 수 없는 경우.

o INT 존재합니다(문자열 파일)
다음과 같은 경우 XNUMX이 아닌 값을 반환합니다. 파일 존재하지 않으면 0이 반환됩니다.

o 명부 fgets(문자열 파일 명부 오프셋)
알림: in 아이메이크 버전 8.00.00 이 함수의 프로토타입이 다음에서 변경되었습니다.
명부 fgets(문자열 파일 INT 오프셋)명부 fgets(문자열 파일 명부 오프셋).

다음에 포함된 오프셋에서 찾은 다음 줄 오프셋 에서 읽습니다 파일. 통과
빈 목록 fgets 읽다 파일 처음부터.

읽은 줄의 내용을 첫 번째 요소로 포함하는 목록을 반환합니다.
(없이 \n 줄 종결자), 두 번째 요소로 줄 종결자 `\n'
(만난 경우) 세 번째 요소로 문자열 OK 라인이 성공적으로 이루어졌을 경우
읽다, 실패 파일 읽기에 실패한 경우. EOF에서 읽을 때 빈 목록은 다음과 같습니다.
돌아왔다. 반환된 목록에는 내부적으로 추가 요소가 포함될 수 있습니다.
에 의해 사용되는 fgets 다음 줄을 읽을 때.

여러 줄을 읽으려면 빈 목록을 다음과 같이 전달하여 시작하세요. 얻는다 두 번째 인수.
후속 라인을 읽으려면 이전에 반환된 목록을 fgets의
논의.

다음은 전체 파일을 읽는 방법을 보여주는 예입니다.

목록 ret;
동안 (1)
{
ret = fgets("파일명", ret);
만약 (!ret)
하다;
프로세스(ret[0], ret[1]);
}

o INT fprintf(문자열 파일 이름, ~)
모든(쉼표로 구분된) 인수를 파일에 추가합니다. 파일 이름. 개수를 반환합니다.
인쇄된 인수.

o INT fprintf(문자열 파일 이름, 체재, ~)
모든(쉼표로 구분된) 인수를 파일에 추가합니다. 파일 이름. 개수를 반환합니다.
인쇄된 인수.

If 체재 자리 표시자 %1 .. %n이(가) 포함되어 있습니다. 출력 형식이 지정되었습니다.
strformat). 이 경우 인수 계산(역시)은 다음을 넘어 시작됩니다.
형식 문자열: 다음의 첫 번째 인수 체재 라고 %1.

o get_base(문자열 파일)
기본 이름을 반환합니다. 파일. 기본 이름은 경로 접두어가 없는 파일입니다.
확장자가 없습니다. 확장자는 마지막부터 시작하는 모든 정보입니다.
파일 이름에 점을 찍으세요. 마지막 점이 발견되지 않으면 파일 이름은 기본 이름입니다.
예를 들어 기본 이름은 ab 같음 a, 기본 이름 알파벳 같음 ab, 베이스
~의 이름 알파벳 같음 c.

o getch()
다음에 누른 키를 문자열로 반환합니다('Enter'를 누를 필요는 없습니다).

o get_dext(문자열 파일)
확장자를 반환합니다. 파일, 분리점을 포함합니다. 확장자는 모두
파일 이름의 마지막 점부터 시작하는 정보입니다.

마지막 점이 발견되지 않으면 빈 문자열이 반환됩니다.

o 명부 getenv(문자열 환경)
환경 변수의 값을 반환합니다. 환경 변수 두 가지 요소를 포함하는 목록:

첫 번째 요소는 환경 변수가 정의되었는지 여부를 나타냅니다(값
"1") 또는 아님(값 "0");
두 번째 요소는 환경 변수의 값을 나타냅니다.

환경 변수의 형식은 다음과 같습니다. 변수=값, 정의된 경우 목록의
두 번째 요소에는 다음이 포함됩니다. 가치. 값이 비어 있으면 변수가 정의되지만
관련된 텍스트가 없습니다.

o get_ext(문자열 파일)
확장자를 반환합니다. 파일, 분리 점을 제외하고. 확장자는 모두
파일 이름의 마지막 점부터 시작하는 정보입니다.

마지막 점이 발견되지 않으면 빈 문자열이 반환됩니다.

o INT getpid()
icmake 바이트 코드 해석기의 프로세스 ID를 반환합니다. icm-exec.

o gets ()
키보드에서 읽은 다음 줄을 다음 줄로 반환합니다. . 에 입력된 라인
키보드는 반환된 키에 저장되지 않는 'Enter' 키로 종료되어야 합니다.
끈.

o get_path(문자열 파일)
경로 접두어를 반환합니다. 파일. 경로 접두어는 (및
포함) 최종 디렉터리 구분 기호(즉, 운영 체제에 따라 다름)
시스템, 정방향 또는 백슬래시).

경로를 찾을 수 없으면 빈 문자열이 반환됩니다.

o INT 목록찾기(목록 첫 번째, str)
의 첫 번째 인덱스를 반환합니다. LST 어디 문자열 하위 버전 발견된 경우, 또는 -1인 경우 LST 하지 않습니다
포함하는 하위 버전.

o INT 듣기(목록 l)
의 요소 수를 반환합니다. 명부.

o 명부 목록(목록 ㅋㅋㅋ 명부 rhs)
요소의 합집합을 포함하는 목록을 반환합니다. ㄹㅇrhs.

o 명부 목록(목록 첫 번째, str)
요소의 합집합을 포함하는 목록을 반환합니다. LST하위 버전.

o 명부 메이크리스트(문자열 마스크)
일치하는 모든 파일의 목록을 반환합니다. 마스크. 예, makelist("*.c") 목록을 반환합니다
다음으로 끝나는 모든 파일을 포함 .c.

o 명부 메이크리스트(유형, 마스크)
이전 함수와 동일하지만 디렉토리 요소의 유형은 다음과 같을 수 있습니다.
첫 번째 인수로 지정됩니다.

상징 의미
IS_ALL 모든 디렉토리 항목을 얻습니다.
IS_DIR은 를 포함한 모든 디렉토리를 얻습니다. 그리고 ..
IS_FILE 파일 목록 얻기
IS_SUBDIR은 모든 하위 디렉터리를 얻습니다.

패턴을 참고하세요 * Unix 유형 운영에서 숨겨진 항목과 일치하지 않습니다.
시스템. 사용 .* 그에 대한.

o 명부 메이크리스트(문자열 마스크, 최신, 비교파일)
제공된 것보다 최신인 마스크와 일치하는 모든 파일 목록을 반환합니다.
비교파일. 운영자 더 어린 대신에 사용될 수 있습니다 더 새로운. 그 주 더 새로운
더 어린 문자열이 아닌 연산자입니다.

o 명부 메이크리스트([int = IS_파일,] 마스크, 최신, 비교파일)
이전 기능과 동일하지만 유형 다음과 같이 지정될 수 있습니다. 명부 메이크리스트(유형,
마스크).

o 메이크리스트(문자열 마스크, 더 오래 된, 비교파일)
위 참조; 비교 파일보다 오래된 파일 목록을 반환합니다.

o 메이크리스트(유형, 마스크, 더 오래 된, 비교파일)
이전 기능과 동일하지만 유형 다음과 같이 지정될 수 있습니다. 명부 메이크리스트(유형,
마스크).

o INT 프린트프(...)
화면(즉, 표준 출력 스트림)에 모든(쉼표로 구분된) 인수를 표시합니다.
인쇄된 인수의 수를 반환합니다.

o INT printf(문자열 체재, ~)
화면(즉, 표준 출력 스트림)에 모든(쉼표로 구분된) 인수를 표시합니다.
인쇄된 인수의 수를 반환합니다( 체재 문자열은 하나의 인수로 계산됩니다).

If 체재 자리 표시자 %1 .. %n이(가) 포함되어 있습니다. 출력 형식이 지정되었습니다.
strformat).

o INT putenv(문자열 환경)
추가 환경 변수 현재(아이메이크) 환경 "VAR=value" 형식을 사용합니다.
0을 반환합니다.

o 크기 조정(문자열 str, INT 새로운 길이) 문자열의 복사본을 반환합니다. 하위 버전, 크기가 다음으로 조정됨
새로운 길이 문자. 만약에 새로운 길이 음수이면 빈 문자열이 반환됩니다.
if 새로운 길이 초과 str의 길이가 지나면 새로 추가된 문자가 초기화됩니다.
공백으로.

o INT 크기(목록 l)
더 이상 사용되지 않음: 사용 경청하다.

o INT sizeoflist(목록 l)
더 이상 사용되지 않음: 사용 경청하다.

o 명부 통계(문자열 기입)
반품 스탯(2) 디렉토리 항목 정보 항목 목록으로. 반환된 목록
두 개의 요소가 있습니다. 요소 0은 속성 가치, 요소 1에는 다음의 크기가 포함됩니다.
파일.

속성은 다음과 같이 미리 정의된 비트 플래그로 반환됩니다.
상수 :

S_IFCHR S_IFDIR S_IFREG
S_IREAD S_IWRITE S_IEXEC

을 참조 스탯(2) 이 상수의 의미에 대한 매뉴얼 페이지.

o 명부 통계(확인 중, 기입)
이전 기능과 동일하지만 지정하여 확인 as P_NOCHECK 기능
스크립트를 종료하지 않습니다. 오히려 그게 돌아온다. 스탯(2)의 반환 값.

o INT strchr(문자열 str, 문자)
의 첫 번째 인덱스를 반환합니다. 하위 버전 어디에 있는 문자 중 하나라도 문자들 발견되었거나 -1
if 하위 버전 에 어떤 문자도 포함되어 있지 않습니다. 문자들.

o INT strlen(문자열 str)
의 문자 수를 반환합니다. 하위 버전 (마지막 0은 계산하지 않음)

o INT strfind(문자열 커다란 건초 더미, 바늘)
인덱스를 반환합니다. 커다란 건초 더미 어디에 바늘 발견된 경우, 또는 -1인 경우 바늘 포함되어 있지 않습니다
in 커다란 건초 더미.
기능 였다 라는 문자열() in 버전 전에 7.00.

o INT strformat(문자열 체재,...)
인수를 지정하기 위해 자리 표시자 %1 .. %2를 사용하여 형식화된 문자열을 반환합니다.
다음 형식.
예:

void main ()
{
정수 i = 10;
정수 j = 20;
문자열 s1;
문자열 s2;
// 전통적인 접근 방식:
s1 = (문자열)i + " " + (문자열)j + " " + (문자열)i;
// strformat을 사용하여:
s2 = strformat("%1 %2 %1", i, j);
printf("s1 = %1, s2 = %2\n", s1, s2);
}

o strlwr(문자열 s)
소문자 복사본을 반환합니다. s.

o 명부 strtok(문자열 str, 구분 기호)
의 모든 하위 문자열을 포함하는 목록을 반환합니다. 하위 버전 하나 이상으로 구분
(연속) 문자 분리기. 예, strtok("안녕하세요. icmake's+world", " +")
세 개의 문자열을 포함하는 목록을 반환합니다. "안녕하세요", "icmake의""세계".

o strupr(문자열 s)
다음의 대문자 복사본을 반환합니다. s.

o 하위 문자열(문자열 본문, INT 오프셋, INT 세다)
다음의 하위 문자열을 반환합니다. 본문에서 시작 오프셋, 구성 계산 문자. 만약에
오프셋 문자열의 크기를 초과하거나 같은 경우 또는 계산 <= 0, 빈 문자열
반환됩니다. 만약에 오프셋 0보다 작으면 0이 사용됩니다.

o INT 시스템(문자열 명령)
실행 명령. 반환 값은 실행된 명령의 종료 값을 나타냅니다. 그만큼
명령 리디렉션 및/또는 파이핑 문자가 포함될 수 있습니다.

o INT 시스템(정수 확인 중, 명령)
이전 기능과 동일한 기능이지만 다음을 지정하여 확인 as
확인되지 않은 함수는 스크립트를 종료하지 않습니다. 오히려 다음을 반환합니다.
호출된 명령의 종료 상태, 또는 0x7f00 명령을 찾을 수 없는 경우.

o 트림(문자열 s)
의 사본을 반환합니다. s 앞뒤 공백 없이.

o 왼쪽 트림(문자열 str)
의 사본을 반환합니다. s 공백 없이.

o 트림(문자열 s)
의 사본을 반환합니다. s 후행 공백 없이.

USER 한정된 기능


무효화 본관

아이메이크 스크립트에는 사용자 정의 함수가 제공되어야 합니다. 본관. 함수 본관
마지막 매개변수에서 생략될 수 있는 세 개의 선택적 매개변수(환경) 첫 번째
(인수), 에서처럼 C. 전체 프로토타입은 다음과 같습니다(참고: 무효화 반환 유형):

void main(int argc, 목록 argv, 목록 envp)

In 본관(),

o 인수 는 요소의 수를 나타냅니다. 인수;

o 인수 요소 0이 .bim의 이름과 동일한 인수를 포함합니다.
파일;

o 환경 '환경' 변수를 포함합니다. 함수 경청하다 를 사용할 수 있습니다
요소의 수를 결정합니다. 요소 환경 형태를 가지고
변수=값. 또는 다음 기능은 Getenv 검색하는 데 사용할 수 있습니다
특정 환경 변수를 즉시 사용합니다. 예:

무효 메인(int argc, list argv)
{
컴파일 목록;
정수 idx;

if (argc == 1)
사용법(요소(0, argv));

if (toCompile = 변경됨("*.cc"))
{
for (idx = length(toCompile); idx--; )
compile(element(idx, toCompile));

if (getenv("dryrun")[0] == "0")
linking(element(2, argv));
}
}

모든 전역 변수를 정의 순서대로 초기화했습니다. 본관 에 의해 호출
아이메이크의 런타임 지원 시스템을 사용하여 추가 작업을 수행합니다.

또한 한정된 사용자 기능

추가 기능을 정의할 수 있습니다. 일단 정의되면 이러한 함수를 호출할 수 있습니다. 앞으로
변수나 함수의 참조는 지원되지 않지만 재귀적으로 호출하는 것은 지원되지 않습니다.
기능은. 함수 선언은 지원되지 않으므로 간접 재귀는 지원되지 않습니다.
어느쪽이든 지원됩니다.

사용자 정의 함수에는 다음 요소가 있어야 합니다.

o 함수의 반환 유형은 다음 중 하나여야 합니다. 무효의, 정수, or 명부. 그곳에
기본 유형이 아닙니다.

o 함수 이름, 예: 편집하다.

o XNUMX개 이상의 쉼표로 구분된 매개변수를 정의하는 매개변수 목록. 매개변수
자체는 유형 이름(정수, 명부) 다음에
매개변수의 식별자입니다. 예: (끈 아웃파일, 소스).

한 쌍의 중괄호({}).

함수 본문에는 (선택적으로 초기화된) 변수 정의가 포함될 수 있습니다. 변하기 쉬운
정의는 유형 이름으로 시작하고 그 뒤에 하나 이상의 쉼표로 구분됩니다(선택 사항).
초기화됨) 변수 식별자. 변수가 명시적으로 초기화되지 않은 경우
기본적으로 초기화됩니다. 기본적으로 INT 변수는 0으로 초기화됩니다. is
빈 문자열로 초기화되었습니다("")와 명부 XNUMX개 요소의 목록으로 초기화됩니다.

변수 정의 외에도 본문에는 XNUMX개 이상의 명령문이 포함될 수 있습니다(참조:
섹션에 있어야 합니다. FLOW 통제). 변수가 정의될 ​​수 있으며 선택적으로 초기화될 수도 있습니다.
함수 내부 어디든, 그리고 만약, for 동안 진술.

행동 아이메이크-값을 반환하지 않는 void가 아닌 함수를 사용하는 스크립트는
한정된.

onworks.net 서비스를 사용하여 온라인으로 icmake를 사용하세요.


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

Linux 명령

Ad