angielskufrancuskihiszpański

Uruchom serwery | Ubuntu > | Fedora > |


Ulubiona usługa OnWorks

icmake - Online w chmurze

Uruchom icmake u dostawcy darmowego hostingu OnWorks przez Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

Jest to polecenie icmake, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu darmowych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

PROGRAM:

IMIĘ


icmake - Obsługa programu (robić) narzędzie używające C-jak gramatyka

STRESZCZENIE


zrobić [opcje] źródło[.im] [docel[.bim]] [-- [argumenty]]

icmun bimfile

OPIS


Imake(1) może być używany jako alternatywa dla robić(1). W swoim standardowym trybie pracy, to
wywołuje następujące programy:

o icm-pp aby wstępnie przetworzyć plik icmake

o icm-komp do kodu bajtowego skompiluj zrobić s

o icm-exec aby wykonać plik kodu bajtowego

Imake pozwala programistom na używanie języka programowania (bardzo przypominającego dobrze znany
C-język programowania) w celu zdefiniowania działań, które są zaangażowane w (złożony) program
utrzymanie. Dla tego, zrobić oferuje różnych operatorów specjalnych, a także zestaw wsparcia
funkcje, które okazały się przydatne w utrzymaniu programu.

Program icmun(1) może służyć do demontażu skompilowanego pliku kodu bajtowego (.bim). Icmun
służy głównie do ilustracji, edukacji i debugowania.

Tradycyjne narzędzia do tworzenia rekompilacji źródeł po zmodyfikowaniu plików nagłówkowych. w
kontekst C + + rozwój programu jest to często zły pomysł, ponieważ dodanie nowego członka do programu
klasa zwykle nie wymaga ponownej kompilacji źródeł klasy. Do obsługi klasy
Zależności przeszkoda(1) może dokonać inspekcji ZAJĘCIA pliki, których można użyć do zdefiniowania zależności
wśród klas. Domyślnie zależności klas nie są interpretowane. Zapoznaj się z icmconf(7)
Strona podręcznika, aby uzyskać więcej informacji.

OPCJE


Imake używa następujących plików i opcji:

o źródło: zrobić plik źródłowy skryptu (domyślne rozszerzenie: .im).

o przeznaczenie: binarny zrobić plik skryptu (domyślnie: `źródło'.bim, zwany plikiem `.bim'
poniżej).

o --: zrobić oddzielanie argumentów separatorem zrobić argumenty z przekazanych argumentów
do pliku .biml() args: argumenty następujące -- są przekazywane do pliku .bim
w obecnej formie i są dostępne na stronie podstęp argv parametr zdefiniowany jako zrobić
scenariusz główny drugi parametr funkcji (patrz poniżej w sekcji USER ZDEFINIOWANE
FUNKCJE). W przypadku niektórych opcji (patrz poniżej) -- separator nie jest wymagany.

Imake obsługuje różne opcje, opisane dalej. ten -h opcja ma pierwszeństwo przed wszystkimi innymi
opcje, -a opcja ma pierwszeństwo przed wszystkimi innymi opcjami z wyjątkiem -h. Z pozostałej akcji
opcje (-b, -C, -mi, -i, -p i -t) można podać tylko jeden:

o -a
pokaż informacje o zrobić, uchylony przez -h;

o -b
przerwane: zamiast tego użyj opcji -e;

o -c
die,en zrobić plik źródłowy jest kompilowany, generując plik .bim;

o -e
wykonać zrobić plik .bim, podany jako zrobićpierwszy argument pliku . Wszelkie dodatkowe
argumenty są przekazywane do pliku .bim bez zmian i -- nie należy określać;

o -F
nazwy plików i flagi, a także przegląd wszystkich działań do wykonania przez
zrobić są wyświetlane na standardowym strumieniu wyjściowym;

o -h
podaj informacje o użytkowaniu i zakończ zrobić;

o -i
pierwszym argumentem jest zrobić plik źródłowy, domyślnym plikiem binarnym jest
zbudowany w razie potrzeby. Wszelkie dodatkowe argumenty są przekazywane do pliku .bim
tak jak jest i -- nie należy określać;

o -p
die,en zrobić plik źródłowy jest tylko wstępnie przetworzony, a wstępnie przetworzony plik jest zapisywany
do zrobićdrugi argument pliku (domyślnie `źródło'.pim);

o -q
zignorowane, zostaną usunięte w przyszłości zrobić wersja;

o -t
argument następujący -t to nazwa tymczasowego pliku .bim, który jest usuwany
po zrobićwezwanie. Kiedy . jest określony jako nazwa tymczasowego pliku .bim
następnie domyślny katalog tymczasowy, po którym następuje zrobićidentyfikator procesu, po którym następuje
.bim Jest używane.

Po nazwie tymczasowego pliku .bim nazwa zrobić skrypt źródłowy
należy określić. Wszelkie dodatkowe argumenty są przekazywane do pliku .bim bez zmian i
-- nie należy określać; Po ustawieniu flagi wykonywalnej pliku skryptu źródłowego
(chmod +x scenariusz) i podając mu linię początkową w następujący sposób:

#!/usr/bin/icmake -t.

die,en zrobić skrypt można bezpośrednio wywołać:

skrypt arg1 arg2

w którym to przypadku zrobić scenariusz „skrypt” jest wykonywany, gdy otrzymuje
argumenty scenariusz arg1 arg2.

o -T
ta opcja musi być podana z nazwą katalogu, który jest używany do przechowywania
pliki tymczasowe. Np. podczas kompilacji an zrobić skrypt, wyjście z zrobić'S
preprocesor to plik tymczasowy, który jest usuwany przy wyjściu. Domyślnie / Tmp jest używany,
chyba że / Tmp nie jest katalogiem do zapisu, w takim przypadku jest to katalog bieżącego użytkownika $ HOME
używany jest katalog. Niejawne nazwy plików tymczasowych zawsze zaczynają się od identyfikatora procesu
obecny zrobić proces.

o -v
pokaz zrobićnumer wersji i koniec zrobić, uchylony przez -h

Icmun:

bimfile: binarny zrobić plik skryptu.

PREPROCESOR DYREKTYWY


Dostępne są następujące dyrektywy preprocesora:

o komentarz:
standard C komentarz (wszystkie pomiędzy /* i */) oraz komentarz do końca wiersza (wszystkie
następująca zawartość linii //) są ignorowane.

o Uruchomienie powłoki: pierwsza linia zrobić-skrypt może zaczynać się od #!ścieżka, Gdzie
ścieżka określa bezwzględną lokalizację zrobić program. Tworząc scenariusz
wykonywalny, można go wywołać bez jawnego wywoływania zrobić.

Np. jeśli pierwsza linia (wykonywalnego) pliku icmakefile 'icm' (bez rozszerzenia)
zawiera

#!/usr/bin/icmake -i

następnie icm może być wydana jako polecenie, w ten sposób wykonując

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

Alternatywnie

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

mogą być wykorzystane, co skutkuje wykonaniem

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

W tym przypadku plik binarny jest usuwany przy wyjściu.

o #zawierać "Nazwa pliku"
Plik filename znajduje się w miejscu, w którym znajduje się dyrektywa

o #zawierać
Plik filename znajduje się w lokalizacji #zawierać dyrektywa; filename
jest przeszukiwany w rozdzielonych dwukropkami katalogach określonych przez IM środowisko
zmienny. Pierwsze wystąpienie filename w katalogach określonych przez IM
używana jest zmienna środowiskowa.

o #definiować identyfikator [definicja]
Tekst identyfikator zostanie zastąpiony przez definicja. Definicja może zawierać
odniesienia do już zdefiniowanych identyfikatorów, przy użyciu ${identyfikator} format. Jeśli
${identyfikator} nie został zdefiniowany (jeszcze), tekst ${identyfikator} jest dosłownie przechowywany.
Aby zapobiec nieskończonej rekurencji co najwyżej 100 ${identyfikator} zamienniki są dozwolone.

Definicje są kontynuowane w następnym wierszu, jeśli ostatnim znakiem w wierszu jest a
ukośnik wsteczny (\). (co nie jest zawarte w definicji). Preprocesor
łączy ciągi w cudzysłowie, a ciągi w cudzysłowie nie mogą obejmować wielu znaków
linie. Wiele spacji (poza ciągami w cudzysłowie) w definicjach to
skrócone do jednej pustej przestrzeni.

Definicja następująca po #definiuj identyfikator jest opcjonalny. Jeśli zostanie pominięty,
makro jest zdefiniowane, więc może być używane w #jeśli(n)def dyrektywy (patrz niżej), ale one
nie są zastępowane żadnym tekstem w zrobić instrukcje kodu.

o #ifdef identyfikator
Jeśli identyfikator makro zostało zdefiniowane w następnym bloku kodu (do momentu dopasowania #else
or #endif dyrektywa została odczytana) jest skompilowana bajtami. W przeciwnym razie blok kodu to
ignorowane.

o #ifndef identyfikator
Jeśli identyfikator makro było nie zdefiniował następny blok kodu (do momentu dopasowania
#else or #endif dyrektywa została wykryta) jest skompilowana bajtami. W przeciwnym razie blok
kod jest ignorowany.

o #else
Kończy a #ifdef i #ifndef dyrektywa, cofająca decyzję o akceptacji
następujący kod. Tylko jeden #else dyrektywa może być powiązana z #jeśli(n)def
dyrektyw.

o #endif
Kończy blok preprocesora, zaczynając od dopasowania #ifdef, #ifndef or #else
dyrektywa. ten #endif katalog i jego dopasowanie #jeśli(n)def dyrektywa musi być
określone w tym samym pliku.

o #niedef identyfikator
usunąć identyfikator z zestawu zdefiniowanych symboli. Nie wpływa to na
specyfikacja dowolnych wcześniej zdefiniowanych symboli, w których identyfikator definicja
był użyty. Gdyby identyfikator nie został zdefiniowany, pojawia się ostrzeżenie.

DATA TYPY


Imake obsługuje następujące typy danych:

o ASCII charakter stały
Stałe znakowe ASCII składają się z jednego znaku otoczonego pojedynczym lub podwójnym
cytaty. Pojedyncze znaki (np. 'a') reprezentują sam znak. Standard
sekwencje specjalne (np. '\n') są obsługiwane i reprezentują ich standardową konwersję
wartość (np. '\n' reprezentuje wartość ascii 10 (dziesiętnie)). Niestandardowa ucieczka
sekwencje (np. '\x') reprezentują znak ascii następujący po znaku ucieczki
(więc '\x' równa się 'x'). Sekwencje ucieczki składające się z trzech cyfr ósemkowych reprezentują
znak ascii odpowiadający wartości ósemkowej modulo 256 (np. „\123”).
Sekwencje ucieczki składające się z x, po którym następują dwie cyfry szesnastkowe, reprezentują
znak ascii odpowiadający wartości szesnastkowej (np. '\xa4').

o int
Wartości całkowite, od -0x8000 przez 0x7fff. int stałe mogą być
określone jako liczby dziesiętne (zaczynające się od cyfr od 1 do 9), liczby ósemkowe
(zaczynający się od 0, po którym następuje jedna lub więcej cyfr ósemkowych) liczby szesnastkowe
(zaczynający się od 0x, po którym następuje jedna lub więcej cyfr szesnastkowych) lub as ASCII
stałe znakowe.

o ciąg
Zmienne tekstowe. Stałe łańcuchowe są oddzielone podwójnymi cudzysłowami. Wiele ciągów
stałe mogą być łączone, ale jedna stała łańcuchowa nie może obejmować wielu
linie. Stałe łańcuchowe oddzielone tylko białymi znakami (tzn. spacje, znaki nowej linii,
komentarz) są łączone i reprezentują jedną stałą łańcuchową. Aby wskazać
koniec wiersza w stałej ciągu znaków użyj \n sekwencja ewakuacyjna.

Stałe znakowe ASCII otoczone podwójnymi cudzysłowami mogą być również używane w
wyrażenia arytmetyczne, jeśli jeden z operandów jest an int. Pojedynczy znak
ciągła stała musi być stałą i nie może być ciąg zmienna.

Podobnie, stałe znakowe ASCII otoczone pojedynczymi cudzysłowami mogą być używane w
sytuacje, w których oczekiwany jest operand łańcuchowy.

o podstęp
Struktura danych zawierająca szereg indywidualnie dostępnych ciąg wartości. Kiedy
lista zawiera elementy, jej pierwszy element jest oznaczony indeksem 0.

o unieważnić
Używany z definicjami funkcji, aby wskazać, że funkcja nie zwraca a
wartość.

Zmienne mogą być definiowane na poziomie globalnym, jak również na dowolnym poziomie lokalnym wewnątrz
Funkcje. Po zdefiniowaniu funkcji wewnętrznych standard C zasady scopingu i widoczności
zastosować. Np. zmienne lokalne mogą być używane tylko samodzielnie lub w głębiej zagnieżdżonych
bloki, ich widoczność jest maskowana w głębiej zagnieżdżonych blokach poprzez zdefiniowanie identycznie
nazwana zmienna wewnątrz tych głębiej zagnieżdżonych bloków. Zmienne są silnie typizowane i
nie może mieć typu unieważnić.

Zmienne mogą być inicjowane po ich zdefiniowaniu. Inicjalizacje to wyrażenia, które
może używać funkcji zdefiniowanych wcześniej lub przez użytkownika, wartości stałych i wartości zmiennych, które są
widoczne w miejscu definicji.

PREDEFINIOWANE STAŁE


Następujące stałe są predefiniowane przez zrobić. Wszystkie są stałe int wartości:

────────────────────────────────.
wartość symbolu przeznaczona dla
────────────────────────────────.
O_ALL 8 makelist
Makelista O_DIR 2
O_FILE 1 makelista
Lista robienia O_SUBDIR 4
────────────────────────────────.
WYŁ. 0 echo
WŁĄCZONE 1 echo
────────────────────────────────.
P_CHECK 0 wywołań systemowych
P_NOCHECK 1 wywołania systemowe
────────────────────────────────.
Statystyka S_IEXEC 32
Statystyka S_IFCHR 1
Statystyka S_IFDIR 2
Statystyka S_IFREG 4
S_IREAD 8 statystyk
S_IWRITE 16 stat
────────────────────────────────.

Następujące stałe są zależne od architektury:

────────────────────────────────────────────────── ────────────
symbol 1, gdy jest zdefiniowany na platformie, w przeciwnym razie 0
────────────────────────────────────────────────── ────────────
unix Unix, zwykle z kompilatorem GNU gcc
UNIX może być alternatywnie dostępny
linux x86 z systemem Linux (zwykle z gcc)
LINUX może być alternatywnie dostępny
M_SYSV, M_UNIX x86 z systemem SCO/Unix
_POSIX _SOURCE Unix z kompilatorem zgodnym z Posix
__hpux HP-UX, z natywnym kompilatorem HP
────────────────────────────────────────────────── ────────────

OPERATORZY


wpisane w int argument(y):

Wszystkie kategorie C operatory są dostępne (z wyjątkiem operatorów wskaźnikowych, ponieważ zrobić nie wspiera
wskaźniki). Działają jak ich C- odpowiedniki języka programowania.

wpisany w ciąg argument(y):

Dla ciąg zmienne typu i/lub stałe dostępne są następujące operatory (a i b
reprezentować ciąg zmienne lub stałe):

o a + b: zwraca nowy ciąg wartość zawierająca konkatenację ciąg wartości a
i b, Należy pamiętać, że ciąg stałe mogą być bezpośrednio łączone (bez użycia +
operatora), np. następujące dwa wiersze definiują ciąg "dzień dobry świat":

"Witaj świecie"
„cześć” + „świat”

o a += b: a musi być ciąg zmienna, do której ciąg zmienna lub wartość b is
dołączone.

o porównania ciągów: operatory == != <= >= < > != i == mogą być stosowane do ciąg
wartości lub zmienne, zwracając 1, jeśli porównanie się powiedzie, w przeciwnym razie 0.
Porównanie rozróżnia wielkość liter i jest zgodne z definicją kolejności lub znaków
na ASCII zestaw znaków.

o !a: wartość logiczna ! (nie) operator zwraca 1, jeśli ciąg a jest puste, w przeciwnym razie 0 to
zwrócony.

o a młodszy b, a nowsza b: zwraca 1 jeśli plik a jest nowszy niż plik b. Np,
"źródło.cc" nowsza "źródło.o". Pliki a i b nie muszą istnieć: jeśli oba nie istnieją
istnieje zwracane 0; Jeśli b nie istnieje, zwracane jest 1; Jeśli a nie istnieje 0 to
zwrócony; jeśli są równie stare, zwracane jest 0. (ten istnieje() predefiniowana funkcja
(patrz poniżej, sekcja PREDEFINIOWANE FUNKCJE) można użyć do bezpośredniego sprawdzenia, czy a
plik istnieje).

o a starszych b: zmienia 1, jeśli plik a jest starszy niż plik b. Np, „libprog.a” starszych
"źródło.o". Pliki a i b nie muszą istnieć: jeśli oba nie istnieją 0 to
zwrócony; Jeśli a nie istnieje, zwracane jest 1; Jeśli b nie istnieje zwracane jest 0; Jeśli
są równie stare. Zwracane jest 0.

o []: operator indeksu pobiera znak ze zmiennej łańcuchowej lub stałej: it
zwraca ciąg jako an wartość r. Dlatego następujące oświadczenie kompiluje OK:

// załóżmy, że str1 i str2 są ciągami
słowo1 = słowo2[3];

ale poniższe oświadczenie nie skompiluje się:

str2 [3] = "a";

Pusty ciąg jest zwracany, jeśli podano nieprawidłową wartość indeksu.

o Operator „wstecz” (sznurek cmd`)
Ciąg umieszczony między dwoma backtickami jest wykonywany przez popować(3) funkcja. ten
standardowe wyjście generowane przez polecenie przechowywane w argumencie ciągu to
zwrócone jako lista. Pusta lista wskazuje, że polecenie nie mogło zostać wykonane.
Polecenie, które można wykonać, ale nie daje żadnych wyników, zwraca listę
zawierające jeden pusty element. Standardowe wyjście strumienia błędów polecenia nie jest
zbierane przez operatora backtick. Jednak standardowe przekierowanie powłoki może być:
używany do zbierania danych wyjściowych standardowego strumienia błędów. Przykład:

printf(`"ls"`); // wyświetla elementy w
// bieżący katalog

Predefiniowana funkcja eval(ciąg cmd) zachowuje się dokładnie tak jak backtick
operator: są synonimami.

wpisane na listę argument(y):

Dla podstęp zmienne typu i/lub wartości dostępne są następujące operatory:

o a + b: zwraca nowy podstęp wartość zawierająca konkatenację podstęp wartości a i
b. Jest nie operacja zestawu: jeśli element występuje zarówno w a oraz w b, oni będą
pojawiają się dwukrotnie na liście wynikowej (set-addition jest zapewniany przez wbudowany
funkcjonować słuchanie).

o a - b: zwraca nowy podstęp wartość zawierająca elementy w a które nie są obecne
in b, To is operacja set-difference: zwrócona lista zawiera wszystkie elementy
in a które nie są elementami b.

o a += b: elementy w b są dodawane do elementów w a, który musi być podstęp
zmienny. To jest nie ustawiona operacja.

o a -= b: elementy w b są usuwane z elementów w a, który musi być podstęp
zmienny. Ten is operacja zbiorowa: wszystkie elementy a które znajdują się w b
usunięte z a.

o lista porównań równości: operatory != i == mogą być stosowane do podstęp wartości lub
zmienne. Operator == zwraca 1, jeśli obie listy mają identyczny element po elemencie
elementy, w przeciwnym razie zwracane jest 0. Operator != odwraca wynik ==.

o !a: wartość logiczna ! operator zwraca 1, jeśli podstęp a jest puste, w przeciwnym razie 0 to
zwrócony.

o []: operator indeksu pobiera element listy ze zmiennej listy: zwraca a
ciąg jako an wartość r. Dlatego następujące oświadczenie kompiluje OK:

// załóżmy, że lst to lista, str to łańcuch
str = lst[3];

ale poniższe oświadczenie nie skompiluje się:

lst[3] = str;

Pusty ciąg jest zwracany, jeśli podano nieprawidłową wartość indeksu.

Odlew:

Odlewy typu mogą być wykonywane przy użyciu standardu C operator obsady do obsady:

o Ciągi do int i odwrotnie ((wew.)"123", (ciąg)55)

o Ciągi do list (podstęp LST = (lista)"cześć")

FLOW CONTROL


Imake oferuje następujący podzbiór Coświadczenia. Mogą być używane jak w C
język programowania.

o wyrażenie ;
Oświadczenie prostego wyrażenia;

o Oświadczenie złożone
Zmienne dowolnego typu mogą być definiowane i inicjowane w dowolnym miejscu w dowolnym związku
oświadczenie. ten widoczność zmiennej zaczyna się od jej punktu definicji.

o if (stan: schorzenie) oświadczenie
Wewnątrz warunku można zdefiniować i zainicjalizować zmienną. Np,

if (string str = getText())
proces(str);

W tym przykładzie proces nie nazywa się jeśli getText () zwraca pusty ciąg. ten
zmienna str nie istnieje ani przed, ani po if komunikat.

o if (stan: schorzenie) oświadczenie więcej oświadczenie
Podobnie jak w poprzednim stwierdzeniu, wewnątrz warunku można zdefiniować zmienną i
zainicjowany.

o dla (w tym; stan: schorzenie; przyrost) oświadczenie
Zmienne (jednego typu) mogą być inicjowane (i opcjonalnie definiowane) w
startowych Sekcja. ten startowych, warunek i przyrost sekcje mogą pozostać puste. ten
pusta sekcja warunku jest interpretowana jako `zawsze prawdziwy".

o Podczas (stan: schorzenie) oświadczenie
Wewnątrz warunku można zdefiniować i zainicjalizować zmienną.
Uzupełniające do ... podczas() wyciąg nie jest dostępny. Zwróć uwagę, że definiowanie
zmienna, użycie wyrażenia inicjującego oznacza, że ​​inicjalizacja
wyrażanie jest wykonywane w każdej iteracji Podczas oświadczenie. Więc następujące
instrukcja nigdy się nie skończy i wyświetli niekończący się strumień wartości 10:

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

o powrotu;, powrót wyrażenie;
Równina powrót oświadczenia mogą być używane w unieważnić funkcje i powrót wyrażenie
instrukcje są używane w innych typach funkcji. Funkcja główny ma typ zwrotu
unieważnić i tak w główny tylko zwykły powrót można używać oświadczeń. Domyślnie zrobić
wartość wyjścia ze skryptu wynosi 0. Użyj wbudowanej funkcji wyjście (patrz poniżej), aby określić
dowolna inna wartość wyjścia.

Be rozmyślny: zachowanie niepustych funkcji, które nie zwracają wartości, jest niezdefiniowane.

o złamać
Liście dla i Podczas oświadczenia, nadrzędne wobec warunku oświadczenia.

o kontynuować
Kontynuuje z następną iteracją dla or Podczas komunikat.

o wyjście (wyrażenie)
Kończy wykonanie an zrobić-scenariusz. ten wyrażenie musi ocenić do int
wartość, która staje się wartością wyjścia skryptu.

PREDEFINIOWANE FUNKCJE


Imake oferuje następujące predefiniowane funkcje, z których można korzystać w dowolnym miejscu w zrobić
skrypty. Poniższy przegląd jest uporządkowany alfabetycznie według nazwy funkcji.

o unieważnić arghead(string h)
Funkcja pomocnicza Exec () (patrz także poniżej w Exec ()): definiuje "nagłówek argumentu",
do użycia z Exec (). Domyślnie `nagłówek argumentu' jest pustym łańcuchem.

o unieważnić argtail (strunowy t)
Funkcja pomocnicza Exec () (patrz także poniżej w Exec ()): definiuje „ogon argumentu”,
do użycia z Exec (). Domyślnie `ogon argumentu' jest pustym łańcuchem.

o int ascii(string s)
Zwraca pierwszy znak s jako int; np, ascii ("A") powraca 65;

o ciąg ascii(int i)
Zwroty produktów i jako ciąg, np. Ascii(65) zwraca ciąg "A";

o ciąg change_base(ciąg file, ciąg nowa baza)
Zmienia nazwę bazową filet, zwraca zmienioną nazwę. Np,
change_base("/ścieżka/demo.im", "na zewnątrz") powraca "/ścieżka/wyj.im";

o ciąg change_ext(ciąg file, ciąg nowy)
Zmienia rozszerzenie filet, zwraca zmienioną nazwę. Np,
rss_changeExt("źródło.cc", "o") powraca "źródło.o";

o ciąg zmień_ścieżkę(ciąg file, ciąg Nowa ścieżka)
Zmienia specyfikację ścieżki filet, zwraca zmienioną nazwę. Np,
change_path("tmp/binarny", "/ usr / bin") powraca "/usr/bin/binarny". Zauważ, że
/-separator jest wstawiany, jeśli jest to wymagane.

o ciąg chdir(ciąg nowy katalog)
Zmienia katalog roboczy skryptu, zwraca poprzedni katalog jako bezwzględny
ścieżka.

Zastosowanie chdir(".") aby uzyskać aktualny katalog roboczy, chdir("") może być przyzwyczajony do
uzyskać startowy katalog roboczy (ta funkcjonalność została zepsuta w wydaniach
przed 7.00, ale już działa). Funkcja kończy działanie
zrobić-skrypt, jeśli określony nowydir nie istnieje.

o ciąg chdir(int kontrola, ciąg nowy katalog)
Ta sama funkcjonalność co poprzednia funkcja, ale przez określenie kontrola as
P_NOCHECK. funkcja nie kończy działania skryptu. Raczej zwróci
bieżący katalog roboczy skryptu.

o cmdhead(ciąg h)
Funkcja pomocnicza Exec () (patrz także poniżej w Exec ()): Definiuje `nagłówek polecenia', aby
być używany z Exec (). Domyślnie `nagłówek polecenia' jest pustym łańcuchem.

o cmdtail(ciąg t)
Funkcja pomocnicza Exec () (patrz także poniżej w Exec ()): Definiuje `ogon polecenia', to
być używany z Exec (). Domyślnie `ogon polecenia' jest pustym ciągiem.

o echo(int optować)
Kontroluje echo wywołanych programów (i ich argumentów), określ OFF jeśli odbija się echem
nie jest wymagane. Domyślnie echo (włączone) Jest używane.

o ciąg element(int indeks, podstęp (lub strunowy) var)
Działa identycznie jak operator indeksu: odnieś się do indeksu ([]) operator w
Sekcja OPERATORZY.

o podstęp eval(ciąg ul.
Ta funkcja działa identycznie jak operator backtick. Przykład dostarczony z
operator backticku mógł zatem również zostać napisany w ten sposób:

printf(eval("ls")); // wyświetla elementy w bieżącym
// katalog

o exec(ciąg cmd, ...)
Wykonuje polecenie z argumentami. Każdy argument będzie poprzedzony arghead()'S
argument i postfixed przez argtail()argument. Zwróć uwagę, że nie są wstawiane żadne spacje
pomiędzy arghead()zawartość, argument właściwy, oraz argtail()argument. Wszystko
w ten sposób zmodyfikowane argumenty są łączone, tym razem oddzielone pojedynczymi odstępami i
następnie cmdhead()zawartość jest wstawiana między polecenie a pierwszy argument
(po obu stronach oddzielone pojedynczymi odstępami) i cmdtail()'s zawartość jest dołączona
do argumentów (ponownie oddzielonych pojedynczym odstępem). PATH jest wyszukiwany w celu zlokalizowania
cmd. Zwracane jest 0.

o exec(int sprawdź polecenie, ciąg cmd, ...)
Ta sama funkcjonalność co poprzednia funkcja, ale przez określenie kontrola as
NIESPRAWDZONE funkcja nie kończy działania skryptu. Raczej zwróci
nazwany status wyjścia polecenia, lub 0x7f00 jeśli polecenie nie zostało znalezione.

o wykonaj (ciąg cmd, ciąg cmdhd, ciąg arghd, ... ciąg argtl, ciąg cmdtl)
Taki sam jak Exec (), ale należy określić nagłówek/ogon polecenia i argument nagłówek/ogon.

Faktycznie wykonane polecenie zaczyna się od cmd, śledzony przez cmdhd. Dalej jest seria
argumentów następuje, każdy otoczony przez arghd i argtl. Polecenie kończy się na
cmdtl. Zwracane jest 0

o wykonaj (int kontrola, ciąg cmd, ciąg cmdhd, ciąg arghd, ... ciąg argtl,
ciąg cmdtl)
Ta sama funkcjonalność co poprzednia funkcja, ale przez określenie kontrola as
NIESPRAWDZONE funkcja nie kończy działania skryptu. Raczej zwróci
nazwany status wyjścia polecenia, lub 0x7f00 jeśli polecenie nie zostało znalezione.

o int istnieje(ciąg plik)
Zwraca wartość niezerową, jeśli filet istnieje, w przeciwnym razie zwracane jest 0.

o podstęp fgets(ciąg file, podstęp zrównoważyć)
UWAGA: in zrobić wersja 8.00.00 zmieniono prototyp tej funkcji z
podstęp fgets(ciąg file, int zrównoważyć) do podstęp fgets(ciąg file, podstęp zrównoważyć).

Następna linia znaleziona przy przesunięciu zawartym w offset jest czytany z filet. Przekaż i
pusta lista do fgets czytać filet od samego początku.

Zwraca listę zawierającą jako pierwszy element zawartość czytanej linii
(bez \n terminator linii), jako drugi element terminator linii `\n"
(jeśli zostanie napotkany), a jako trzeci element napis OK jeśli linia się powiodła
czytać, FAIL jeśli odczyt z pliku nie powiódł się. Podczas czytania w EOF pusta lista to
zwrócony. Zwracana lista może zawierać dodatkowe elementy, które są wewnętrznie
wykorzystane przez fgets podczas czytania następnej linii.

Aby przeczytać wiele wierszy, zacznij od przekazania pustej listy jako dostaje drugi argument.
Aby przeczytać kolejne wiersze, przekaż poprzednio zwróconą listę do fgets Dopiero
argumenty.

Oto przykład pokazujący, jak odczytać cały plik:

lista ret;
while (1)
{
ret = fgets("nazwa pliku", ret);
jeśli (!ret)
break;
proces(ret[0], ret[1]);
}

o int fprintf(ciąg Nazwa pliku, ...)
Dołącza wszystkie (oddzielone przecinkami) argumenty do pliku filename. Zwraca liczbę
drukowane argumenty.

o int fprintf(ciąg Nazwa pliku, ciąg format, ...)
Dołącza wszystkie (oddzielone przecinkami) argumenty do pliku filename. Zwraca liczbę
drukowane argumenty.

If format zawiera symbole zastępcze % 1 .. % n dane wyjściowe są sformatowane (zobacz także
strformat). Zauważ, że w tym przypadku liczenie argumentów (również) zaczyna się poza
ciąg formatu: pierwszy argument następujący format określa się jako %1.

o ciąg get_base(ciąg plik)
Zwraca nazwę podstawową filet. Nazwa podstawowa to plik bez przedrostka ścieżki
i bez jego przedłużenia. Rozszerzenie to wszystkie informacje zaczynające się od finału
kropka w nazwie pliku. Jeśli nie zostanie znaleziona końcowa kropka, nazwa pliku jest nazwą podstawową.
Np. podstawowa nazwa ab równa się a, podstawowa nazwa ABC równa się ab, baza
Nazwa ABC równa się c.

o ciąg pobierz()
Zwraca następny naciśnięty klawisz jako ciąg (naciśnięcie 'Enter' nie jest wymagane).

o ciąg get_dext(ciąg plik)
Zwraca rozszerzenie filet, w tym kropka oddzielająca. Rozszerzenie to wszystko
informacje zaczynające się od ostatniej kropki w nazwie pliku.

Jeśli nie zostanie znaleziona końcowa kropka, zwracany jest pusty ciąg.

o podstęp getenv(string envvar)
Zwraca wartość zmiennej środowiskowej envvar na liście zawierającej dwa elementy:

pierwszy element wskazuje, czy zdefiniowano zmienną środowiskową (wartość
"1") lub nie (wartość "0");
drugi element wskazuje wartość zmiennej środowiskowej.

Zmienne środowiskowe mają postać zmienna=wartość, a jeśli zdefiniowano listę
drugi element zawiera wartość. Jeśli wartość jest pusta, zmienna jest zdefiniowana, ale
nie ma z nim powiązanego tekstu.

o ciąg get_ext(ciąg plik)
Zwraca rozszerzenie filet, z wyjątkiem kropki oddzielającej. Rozszerzenie to wszystko
informacje zaczynające się od ostatniej kropki w nazwie pliku.

Jeśli nie zostanie znaleziona końcowa kropka, zwracany jest pusty ciąg.

o int getpid()
Zwraca identyfikator procesu interpretera kodu bajtowego icmake icm-exec.

o ciąg dostaje ()
Zwraca następną linię odczytaną z klawiatury jako a ciąg. Linia wprowadzona na
klawiatura musi być zakończona klawiszem 'Enter', który nie jest przechowywany w zwracanym
ciąg.

o ciąg pobierz_ścieżkę(ciąg plik)
Zwraca prefiks ścieżki z filet. Prefiks ścieżki zawiera wszystkie informacje do (i
w tym) końcowy separator katalogów (który jest, w zależności od operacji)
systemu, ukośnik w przód lub ukośnik odwrotny).

Jeśli nie zostanie znaleziona żadna ścieżka, zwracany jest pusty ciąg.

o int znajdź listę(lista pierwszy, ciąg ul.
Zwraca pierwszy indeks w LST gdzie sznurek? str zostanie znaleziony lub -1 jeśli LST nie
zawierać str.

o int słuchaj(lista l)
Zwraca liczbę elementów w podstęp.

o podstęp listunion(lista lewa, podstęp prawa strona)
Zwraca listę zawierającą sumę elementów w lhs i Rhs.

o podstęp listunion(lista pierwszy, ciąg ul.
Zwraca listę zawierającą sumę elementów w LST i str.

o podstęp makelist(string maska)
Zwraca listę wszystkich pasujących plików maska. Np, lista("*.c") zwraca listę
zawierające wszystkie pliki kończące się na .c.

o podstęp lista(typ, ciąg maska)
Tak samo jak w poprzedniej funkcji, ale typ elementów katalogu może być
określony jako pierwszy argument:

znaczenie symbolu
IS_ALL uzyskuje wszystkie wpisy w katalogu
IS_DIR uzyskuje wszystkie katalogi, w tym . oraz ..
IS_FILE uzyskać listę plików
IS_SUBDIR uzyskaj wszystkie podkatalogi

Zwróć uwagę, że wzór * nie dopasuje ukrytych wpisów pod działaniem typu Unix
systemy. Posługiwać się .* za to.

o podstęp makelist(string maska, nowsza, ciąg porównaj plik)
Zwraca listę wszystkich plików pasujących do maski, które są nowsze niż podana
porównaj plik. Operator młodszy można użyć zamiast nowsza, Należy pamiętać, że nowsza i
młodszy są operatorami, a nie ciągami.

o podstęp makelista([int = IS_FILE,] ciąg maska, nowsza, ciąg porównaj plik)
Tak samo jak w poprzedniej funkcji, ale rodzaj można określić jako in podstęp lista(typ,
ciąg maska).

o makelist(string maska, starszy, ciąg porównaj plik)
Patrz wyżej; zwraca listę plików, które są starsze niż plik porównywany.

o lista(typ, ciąg maska, starszy, ciąg porównaj plik)
Tak samo jak w poprzedniej funkcji, ale rodzaj można określić jako in podstęp lista(typ,
ciąg maska).

o int printf(...)
Pokazuje wszystkie (oddzielone przecinkami) argumenty do screena (tj. standardowy strumień wyjściowy).
Zwraca liczbę drukowanych argumentów.

o int printf(ciąg format, ...)
Pokazuje wszystkie (oddzielone przecinkami) argumenty do screena (tj. standardowy strumień wyjściowy).
Zwraca liczbę drukowanych argumentów ( format ciąg liczy się jako jeden argument).

If format zawiera symbole zastępcze % 1 .. % n dane wyjściowe są sformatowane (zobacz także
strformat).

o int putenv(string envvar)
Dodaje envvar do obecnego (zrobić) środowisko Użyj formatu: „WARIANCJA=wartość”.
Zwraca 0.

o ciąg zmień rozmiar (ciąg ul. int nowa długość) Zwraca kopię ciągu str, przeskalowany do
nowa długość postacie. Gdyby nowa długość jest ujemna, to zwracany jest pusty ciąg,
if nowa długość przekracza ul długość, to nowo dodane znaki są inicjowane
do spacji.

o int rozmiar(lista) l)
Przestarzałe: użyj słuchaj.

o int sizeoflist(lista l)
Przestarzałe: użyj słuchaj.

o podstęp stat(ciąg wejście)
Zwroty produktów stan(2) informacje o wpisie do książki telefonicznej wejście jako listę. Zwrócona lista
ma dwa elementy: element 0 to atrybut wartość, element 1 zawiera rozmiar
plik.

Atrybuty są zwracane jako flagi bitowe, składające się z następujących predefiniowanych
stałe:

S_IFCHR S_IFDIR S_IFREG
S_IREAD S_IWRITE S_IEXEC

Zobacz stan(2) strona podręcznika dla znaczenia tych stałych.

o podstęp stat(sprawdzanie, ciąg wejście)
Tak samo jak w poprzedniej funkcji, ale przez określenie kontrola as P_NOCHECK Funkcja
nie zakończy skryptu. Raczej wraca stanWartość zwracana przez (2).

o int strchr(ciąg ul. ciąg znaki)
Zwraca pierwszy indeks w str gdzie którykolwiek z znaków w znaki zostanie znaleziony, lub -1
if str nie zawiera żadnych znaków w znaki.

o int strlen(ciąg ul.
Zwraca liczbę znaków w str (nie licząc końcowego 0).

o int strfind(ciąg stóg siana, ciąg igła)
Zwraca indeks w stóg siana gdzie igła zostanie znaleziony lub -1 jeśli igła nie jest zawarty
in stóg siana.
To funkcjonować był nazywa strstr() in Wersje zanim 7.00.

o int strformat(ciąg format,...)
Zwraca sformatowany ciąg znaków za pomocą symboli zastępczych % 1 .. % 2 w celu adresowania argumentów
następującym formacie.
Przykład:

void main ()
{
int i = 10;
intj = 20;
ciąg s1;
ciąg s2;
// tradycyjne podejście:
s1 = (ciąg)i + " " + (ciąg)j + " " + (ciąg)i;
// używając strformatu:
s2 = strformat("%1 %2 %1", i, j);
printf("s1 = %1, s2 = %2\n", s1, s2);
}

o ciąg strlwr(ciąg s)
Zwraca duplikat pisany małymi literami s.

o podstęp strtok(ciąg ul. ciąg separatory)
Zwraca listę zawierającą wszystkie podciągi str oddzielone jednym lub więcej
(kolejne) znaki w separatory. Np, strtok("cześć świat+icmake", " +")
zwraca listę zawierającą trzy ciągi "Cześć", "imake", "świat".

o ciąg strupr(ciąg s)
Zwraca duplikat pisanego wielkimi literami s.

o ciąg substr(ciąg text, int offsetowy, int liczyć)
Zwraca podciąg znaków tekst, zaczynać od offset, składający się z liczyć postacie. Gdyby
offset przekracza (lub jest równy) rozmiarowi ciągu lub jeśli liczyć <= 0, potem pusty ciąg
jest zwracany. Gdyby offset jest mniejsze niż 0, to używane jest 0.

o int system (ciąg polecenie)
Wykonuje komenda. Zwracana wartość wskazuje wartość wyjścia wykonanego polecenia. ten
ciąg komenda może zawierać znaki przekierowania i/lub pipingu.

o int system (int kontrola, ciąg polecenie)
Ta sama funkcjonalność co poprzednia funkcja, ale przez określenie kontrola as
NIESPRAWDZONE funkcja nie kończy działania skryptu. Raczej zwróci
nazwany status wyjścia polecenia, lub 0x7f00 jeśli polecenie nie zostało znalezione.

o ciąg przycinanie(ciąg) s)
Zwraca kopię s bez wiodących i końcowych spacji.

o ciąg trileft(string ul.
Zwraca kopię s bez wiodących białych spacji.

o ciąg przycinanie(ciąg) s)
Zwraca kopię s bez końcowych spacji.

USER ZDEFINIOWANE FUNKCJE


unieważnić główny

Imake skrypty muszą być wyposażone w funkcję zdefiniowaną przez użytkownika główny. Funkcja główny ma
trzy opcjonalne parametry, które można pominąć w ostatnim (envp) do pierwszego
(argc), jak w C. Jego pełny prototyp to (uwaga: unieważnić typ zwrotu):

void main(int argc, lista argv, lista envp)

In Głównym (),

o argc reprezentuje liczbę elementów w argv;

o argv zawiera argumenty, przy czym element 0 jest równy nazwie pliku .bim
plik;

o envp zawiera zmienne "środowiskowe". Funkcja słuchaj mogą być stosowane w celu
określić liczbę jego elementów. Elementy w envp mieć formę
zmienna=wartość. Alternatywnie funkcja getenv może być użyty do odzyskania
konkretna zmienna środowiskowa natychmiast. Przykład:

void main(int argc, lista argv)
{
lista do kompilacji;
int idx;

jeśli (argc == 1)
use(element(0, argv));

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

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

Po zainicjowaniu wszystkich zmiennych globalnych w kolejności ich definicji główny nazywa się przez
zrobićsystem wsparcia run-time do wykonywania dodatkowych zadań.

do tego zdefiniowane użytkownik Funkcje

Można zdefiniować dodatkowe funkcje. Po zdefiniowaniu funkcje te można wywoływać. Do przodu
odwoływanie się do zmiennych lub funkcji nie jest obsługiwane, ale wywoływanie rekurencyjne
funkcje jest. Ponieważ deklaracje funkcji nie są obsługiwane, rekursja pośrednia nie jest
obsługiwane albo.

Funkcje zdefiniowane przez użytkownika muszą zawierać następujące elementy:

o Typ zwracany funkcji, który musi być jednym z próżnia, int, ciąg or podstęp. Tam
nie jest typem domyślnym.

o Nazwa funkcji, np. skompilować.

o Lista parametrów, definiująca zero lub więcej parametrów oddzielonych przecinkami. Parametry
same składają się z nazwy typu (int, ciąglub podstęp) po którym następuje
identyfikator parametru. Np, (strunowy dokumentacja, ciąg źródło).

lub A ciało otoczony parą nawiasów klamrowych ({ i }).

Treści funkcji mogą zawierać (opcjonalnie zainicjowane) definicje zmiennych. Zmienny
definicje zaczynają się od nazwy typu, po której następuje jeden lub więcej oddzielonych przecinkami (opcjonalnie
zainicjowane) identyfikatory zmiennych. Jeśli zmienna nie jest jawnie zainicjowana, to:
domyślnie zainicjowane. Domyślnie int zmienna jest inicjowana na 0, a ciąg is
zainicjowany do pustego ciągu ("") I podstęp jest inicjowany z listą elementów zerowych.

Oprócz definicji zmiennych, ciała mogą zawierać zero lub więcej stwierdzeń (por.
Sekcja FLOW CONTROL). Zauważ, że zmienne mogą być definiowane (i opcjonalnie inicjowane)
wszędzie wewnątrz funkcji, a także w Jeśli, dla i Podczas sprawozdania.

Zachowanie zrobić-skrypty używające niepustych funkcji, które nie zwracają wartości, nie są
zdefiniowane.

Korzystaj z icmake online za pomocą usług onworks.net


Ad


Ad