EnglezăFrancezăSpaniolă

Ad


Favicon OnWorks

icmake - Online în cloud

Rulați icmake în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda icmake care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


icmake - Un program de întreținere (face) utilitate folosind a C-ca gramatica

REZUMAT


icmake [Opțiuni] sursa[.im] [dest[.bim]] [-- [args]]

icmun bimfile

DESCRIERE


Eu fac(1) poate fi folosit ca alternativă la face(1). În modul său de funcționare standard, acesta
apelează următoarele programe:

o icm-pp pentru a preprocesa fișierul icmake

o icm-comp pentru a compila codul octet icmake s

o icm-exec pentru a executa fișierul de cod octet

Eu fac permite programatorilor să utilizeze un limbaj de programare (semănând foarte mult cu binecunoscutul
C-limbaj de programare) pentru a defini acțiunile care sunt implicate în program (complex).
întreținere. Pentru asta, icmake oferă diverși operatori speciali precum și un set de suport
funcții care s-au dovedit a fi utile în întreținerea programului.

Programul icmun(1) poate fi folosit pentru a dezasambla fișierul compilat de cod de octet (.bim). Icmun
este folosit în principal pentru ilustrare, educație și depanare.

Utilitarele tradiționale recompilează sursele odată ce fișierele antet sunt modificate. În
contextul C ++ dezvoltarea programului aceasta este adesea o idee proastă, deoarece adăugarea unui nou membru la a
clasa nu necesită în mod normal să recompilați sursele clasei. Să se ocupe de clasă
dependențe icmbuld(1) poate inspecta CLASE fișiere care pot fi folosite pentru a defini dependențe
printre clase. În mod implicit, dependențele de clasă nu sunt interpretate. Consultați icmconf(7)
pagina de manual pentru mai multe detalii.

OPŢIUNI


Eu fac utilizează următoarele fișiere și opțiuni:

o sursă: icmake fișier sursă script (extensie implicită: .Sunt).

o destinaţie: binar icmake fișier script (implicit: `sursa'.bim, numit „fișierul .bim”
de mai jos).

o --: icmake separator de argumente icmake argumente din argumente transmise
la .bim filenl() args: următoarele argumente -- sunt transmise în fișierul .bim
așa cum este și sunt disponibile de la listă argv parametru definit ca icmake
scenariului principal al doilea parametru al funcției (vezi mai jos la secțiunea USER DEFINIT
FUNCȚII). Pentru unele opțiuni (vezi mai jos) -- separatorul nu este necesar.

Eu fac acceptă diverse opțiuni, descrise în continuare. The -h opțiunea anulează toate celelalte
opțiuni, -a opțiunea anulează toate celelalte opțiuni, cu excepția -h. Din acțiunea rămasă
Opțiuni (-b, -c, -e, -eu, -p și -t) poate fi specificat doar unul:

o -a
arata informatii despre icmake, anulat de -h;

o -b
întrerupt: utilizați în schimb opțiunea -e;

o -c
il icmake fișierul sursă este compilat, generând un fișier .bim;

o -e
executați icmake fișier .bim, dat ca icmakeprimul argument al fișierului. Orice suplimentar
argumentele sunt transmise fișierului .bim așa cum este și -- nu trebuie specificat;

o -F
numele de fișiere și steaguri, precum și o prezentare generală a tuturor acțiunilor care trebuie efectuate de
icmake sunt afișate pe fluxul de ieșire standard;

o -h
furnizați informații despre utilizare și finalizați icmake;

o -i
primul argument este cel icmake fișier sursă, fișierul binar implicit este
construit dacă este necesar. Orice argumente suplimentare sunt transmise fișierului .bim
așa cum este și -- nu trebuie specificat;

o -p
il icmake fișierul sursă este doar preprocesat, iar fișierul preprocesat este scris
la icmakeal doilea argument al fișierului (în mod implicit `sursa'.pim);

o -q
ignorat, va fi eliminat în viitor icmake versiune;

o -t
argumentul care urmează -t este numele unui fișier temporar .bim, care este eliminat
după icmakeapelul lui. Când . este specificat ca numele fișierului temporar .bim
apoi directorul temporar implicit, urmat de icmakecodul de proces al lui, urmat de
.bim este folosit.

După numele fișierului temporar .bim, numele fișierului icmake scriptul sursă
trebuie specificat. Orice argumente suplimentare sunt transmise fișierului .bim așa cum este și
-- nu trebuie specificat; După setarea steagului executabil al fișierului script sursă
(chmod +x scenariu), și furnizându-i o linie inițială ca aceasta:

#!/usr/bin/icmake -t.

il icmake scriptul poate fi numit direct:

scriptul arg1 arg2

caz în care icmake scenariu "script" este executat în timp ce primește
argumente scenariu arg1 arg2.

o -T
această opțiune trebuie să fie furnizată cu numele unui director care este folosit pentru stocare
fișiere temporare. De exemplu, la compilarea unui icmake script, rezultatul icmake'S
preprocesorul este un fișier temporar care este eliminat la ieșire. În mod implicit / tmp este folosit,
dacă nu / tmp nu este un director care poate fi scris, caz în care al utilizatorului curent $ ACASĂ
directorul este utilizat. Numele de fișiere temporare implicite încep întotdeauna cu ID-ul de proces al
curentă icmake proces.

o -v
afișa icmakenumărul versiunii lui și sfârșit icmake, anulat de -h

Icmun:

bimfile: binar icmake fișier script.

PREPROCESATOR DIRECTIVE


Sunt disponibile următoarele directive de preprocesor:

o comentariu:
standard C comentariu (toate între /* și */), precum și comentariul până la sfârșitul rândului (toate
continutul rândului care urmează //) sunt ignorate.

o Pornire Shell: prima linie a icmake-scriptul poate începe cu #!cale, În cazul în care
cale definește locația absolută a icmake program. Făcând scenariul
executabil, poate fi apelat fără apel explicit icmake.

De exemplu, dacă prima linie a unui fișier icmakefile (executabil) „icm” (fără extensie)
conține

#!/usr/bin/icmake -i

apoi icm poate fi emisă ca comandă, executând astfel

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

Alternativ,

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

pot fi utilizate, rezultând în executarea

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

În acest caz, fișierul binar este eliminat la ieșire.

o #include "nume de fișier"
Fișierul nume de fișier este inclus la locul directivei

o #include
Fișierul nume de fișier este inclus la locația #include directivă; nume de fișier
este căutat în directoarele separate prin două puncte specificate de IM mediu inconjurator
variabil. Prima apariție a nume de fișier în directoarele specificate de IM
este utilizată variabila de mediu.

o #defini identificator [definiție]
Textul identificator va fi înlocuit cu definiție. Definiția poate conține
referințe la identificatori deja definiți, folosind ${identifier} format. Dacă
${identifier} nu a fost definit (încă), textul ${identifier} este păstrat literalmente.
Pentru a preveni recursiunea infinită, cel mult 100 ${identifier} înlocuirile sunt permise.

Definițiile continuă pe linia următoare dacă ultimul caracter de pe o linie este a
bară oblică inversă (\). (care nu este inclus în definiție). Preprocesorul
concatenează șiruri cu ghilimele duble, iar șirurile cu ghilimele duble nu se pot întinde pe mai multe
linii. Mai multe spații libere (în afara șirurilor ghilimele duble) în definiții sunt
contractat într-un singur spațiu liber.

Definiția care urmează ale #defini identificatorul este opțional. Dacă este omis,
macro este definită, deci poate fi folosită în #dacă(n)def directive (vezi mai jos), dar acestea
nu sunt înlocuite cu niciun text în icmake declarații de cod.

o #ifdef identificator
În cazul în care identificator macro a fost definită următorul bloc de cod (până la o potrivire #altfel
or #endif directiva a fost citită) este compilată pe octeți. În caz contrar, blocul de cod este
ignorat.

o #ifndef identificator
În cazul în care identificator macro a fost nu a definit următorul bloc de cod (până la o potrivire
#altfel or #endif directivă a fost detectată) este compilat pe octeți. În caz contrar, blocul de
codul este ignorat.

o #altfel
Termină a #ifdef și #ifndef directivă, inversând decizia de acceptare despre
următorul cod. Unul singur #altfel directivă poate fi asociată cu #dacă(n)def
directivelor.

o #endif
Termină blocul preprocesor începând cu potrivirea #ifdef, #ifndef or #altfel
directivă. The #endif director și potrivirea acestuia #dacă(n)def directivă trebuie să fie
specificate în același fișier.

o #undef identificator
Elimină identificator din setul de simboluri definite. Acest lucru nu afectează
specificarea oricăror simboluri definite anterior în care identificatorului definiție
a fost utilizat. Dacă identificator nu a fost definit este emis un avertisment.

DATE TIPURI


Eu fac acceptă aceste tipuri de date:

o ASCII caracter constant
Constantele de caractere ASCII constau dintr-un singur caracter, înconjurat de simple sau duble
citate. Caractere unice (de exemplu, 'A') reprezintă personajul în sine. Standard
secvențe de evacuare (de exemplu, '\n') sunt acceptate și reprezintă standardul lor convertit
valoare (de exemplu, '\n' reprezintă valoarea ascii 10 (zecimală)). Evadare non-standard
secvențe (de exemplu, '\X') reprezintă caracterul ascii care urmează caracterului de evacuare
(asa de '\X' este egală 'X'). Secvențele de evacuare constând din trei cifre octale reprezintă
caracterul ascii corespunzător valorii octale modulo 256 (de exemplu, „\123”).
Secvențele de evacuare constând dintr-un x urmat de două cifre hexazecimale reprezintă
caracterul ascii corespunzător valorii hexazecimale (de exemplu, „\xa4”).

o int
Valori integrale, variind de la -0x8000 prin 0x7fff. int constantele pot fi
specificate ca numere zecimale (începând cu cifrele de la 1 la 9), numere octale
(începând cu 0, urmat de una sau mai multe cifre octale) numere hexazecimale
(începând cu 0x, urmat de una sau mai multe cifre hexazecimale) sau ca ASCII
constante de caractere.

o şir
Variabile text. Constantele șirurilor sunt delimitate de ghilimele duble. șir multiplu
constantele pot fi concatenate, dar o singură constantă de șir poate să nu acopere mai multe
linii. Constante de șir separate numai prin spații albe (de exemplu, spații libere, linii noi,
comentariu) sunt concatenate și reprezintă o singură constantă șir. Pentru a indica o
sfârşitul liniei într-o constantă şir utilizaţi \n secvență de evadare.

Constantele de caractere ASCII înconjurate de ghilimele duble pot fi, de asemenea, utilizate în
expresii aritmetice dacă unul dintre operanzi este an int. Singurul personaj
coarda constantă trebuie sa fi o constantă și nu poate fi a şir variabilă.

De asemenea, constantele de caractere ASCII înconjurate de ghilimele simple pot fi utilizate în
situații în care este așteptat un operand șir.

o listă
O structură de date care conține o serie de elemente accesibile individual şir valori. Cand
o listă conține elemente, primul său element este indicat de indicele 0.

o anula
Folosit cu definițiile funcției pentru a indica faptul că funcția nu returnează a
valoare.

Variabilele pot fi definite la nivel global, precum și la orice nivel local din interior
funcții. Când sunt definite în interiorul funcțiilor, standardul C regulile de acoperire și vizibilitate
aplica. De exemplu, variabilele locale pot fi folosite numai ca atare sau mai profund imbricate
blocuri, vizibilitatea lor este mascată în blocuri mai adânc imbricate prin definirea unui identic
variabilă numită în interiorul acelor blocuri mai profund imbricate. Variabilele sunt puternic tastate și
nu poate avea tip anula.

Variabilele pot fi inițializate atunci când sunt definite. Inițializările sunt expresii, că
poate folosi funcții predefinite sau definite de utilizator, valori constante și valori ale variabilelor care sunt
vizibile la punctul de definire.

PREDEFINIT CONSTANTE


Următoarele constante sunt predefinite de icmake. Toate sunt constante int valori:

─────────────────────────────────
valoare simbol destinată
─────────────────────────────────
O_ALL 8 makelist
O_DIR 2 makelist
O_FILE 1 makelist
O_SUBDIR 4 makelist
─────────────────────────────────
OFF 0 ecou
ON 1 ecou
─────────────────────────────────
P_CHECK 0 apeluri de sistem
P_NOCHECK 1 apeluri de sistem
─────────────────────────────────
S_IEXEC 32 stat
S_IFCHR 1 stat
S_IFDIR 2 stat
S_IFREG 4 stat
S_IREAD 8 stat
S_IWRITE 16 stat
─────────────────────────────────

Următoarele constante sunt dependente de arhitectură:

────────────────────────────────────────────────── ────────────
simbolul 1 când este definit pe platformă, în caz contrar 0
────────────────────────────────────────────────── ────────────
unix Unix, de obicei cu compilatorul GNU gcc
UNIX poate fi disponibil alternativ
linux x86 care rulează Linux (de obicei cu gcc)
LINUX poate fi disponibil alternativ
M_SYSV, M_UNIX x86 care rulează SCO/Unix
_POSIX _SOURCE Unix cu compilator compatibil Posix
__hpux HP-UX, cu compilatorul nativ HP
────────────────────────────────────────────────── ────────────

OPERATORI


int-tiped operanzi:

TOATE C operatorii sunt disponibili (cu excepția operatorilor pointer, cum ar fi icmake nu sustine
indicatoare). Ei operează ca ai lor C-omologii limbajului de programare.

tipat cu șir operanzi:

Pentru şir tip variabile și/sau constante sunt disponibili următorii operatori (a și b
reprezenta şir variabile sau constante):

o a + b: returnează un nou şir valoare care conţine concatenarea lui şir Valorile a
și b. Rețineți că şir constantele pot fi concatetate direct (fără a utiliza codul +
operator), de exemplu, următoarele două linii definesc ambele șirul "Buna ziua lume":

"Salut Lume"
"bună ziua" + "lume"

o a += b: a trebuie să fie a şir variabilă, la care şir variabilă sau valoare b is
anexat.

o comparații de șiruri: operatori == != <= >= < > != și == poate fi aplicat la şir
valori sau variabile, returnând 1 dacă comparația reușește, în caz contrar 0.
Comparația ține seama de majuscule și minuscule și urmează ordinea sau caracterele așa cum sunt definite
în ASCII set de caractere.

o !a: booleanul ! operatorul (nu) returnează 1 dacă şir a este gol, în caz contrar 0 este
întors.

o a mai tanar b, a mai nou b: returnează 1 dacă fișier a este mai recent decât fișierul b. De exemplu,
"source.cc" mai nou "sursa.o". Fișierele a și b nu trebuie să existe: dacă ambele nu există
exist 0 este returnat; dacă b nu există, se returnează 1; dacă a nu există 0 este
întors; daca sunt la fel de vechi se returneaza 0. (cel exista() functie predefinita
(vezi mai jos, secțiunea PREDEFINIT FUNCȚII) poate fi folosit pentru a testa în mod explicit dacă a
fisierul exista).

o a mai în vârstă b: împlinește 1 dacă fișier a este mai vechi decât fișierul b. De exemplu, "libprog.a" mai în vârstă
"sursa.o". Fișierele a și b nu trebuie să existe: dacă ambele nu există 0 este
întors; dacă a nu există, se returnează 1; dacă b nu există 0 este returnat; dacă
sunt la fel de vechi 0 este returnat.

o []: operatorul index preia un caracter dintr-o variabilă sau constantă șir: it
returnează un șir ca un rvalue. Prin urmare, următoarea declarație compilă OK:

// presupunem că str1 și str2 sunt șiruri de caractere
str1 = str2[3];

dar următoarea declarație nu va compila:

str2[3] = „a”;

Este returnat un șir gol dacă este furnizată o valoare de index nevalidă.

o Operatorul `backtick` (`șir cmd`)
Un șir plasat între două backtick-uri este executat de către popen(3) funcția. The
ieșirea standard generată de comanda care este stocată în argumentul șir este
returnat ca o listă. O listă goală indică faptul că comanda nu a putut fi executată.
O comandă care ar putea fi executată, dar nu a produs nicio ieșire returnează o listă
conţinând un element gol. Ieșirea fluxului de erori standard al comenzii nu este
colectate de operatorul de backtick. Cu toate acestea, redirecționarea shell standard ar putea fi
folosit pentru a colecta rezultatul fluxului de erori standard. Exemplu:

printf(`"ls"`); // tipărește elementele în
// directorul curent

Funcția predefinită eval(șir cmd) se comportă exact ca backtick-ul
operator: sunt sinonime.

tip lista operanzi:

Pentru listă tip variabile și/sau valori sunt disponibili următorii operatori:

o a + b: returnează un nou listă valoare care conţine concatenarea lui listă Valorile a și
b. Acest lucru este nu o operaţie setată: dacă un element apare atât în a și, în b, ei vor
apar de două ori în lista rezultată (adăugarea seturilor este oferită de sistemul încorporat
funcţie listeunion).

o a - b: returnează un nou listă valoare care contine elementele in a care nu sunt prezente
in b. Acest is o operație set-difference: lista returnată conține toate elementele
in a care nu sunt elemente ale b.

o a += b: elemente în b sunt adăugate elementelor din a, care trebuie să fie a listă
variabil. Aceasta este nu o operație stabilită.

o a -= b: elemente în b sunt îndepărtate din elementele din a, care trebuie să fie a listă
variabil. Acest is o operație de set: toate elementele de a care se găsesc în b sunt
scos din a.

o listă comparații de egalitate: operatori != și == poate fi aplicat la listă valori sau
variabile. Operator == returnează 1 dacă ambele liste au element cu element identic
elemente, în caz contrar se returnează 0. Operator != inversează rezultatul de ==.

o !a: booleanul ! operatorul returnează 1 dacă listă a este gol, în caz contrar 0 este
întors.

o []: operatorul index preia un element de listă dintr-o variabilă listă: returnează a
sfoară ca o rvalue. Prin urmare, următoarea declarație compilă OK:

// presupune că lst este o listă, str este un șir
str = lst[3];

dar următoarea declarație nu va compila:

lst[3] = str;

Este returnat un șir gol dacă este furnizată o valoare de index nevalidă.

turnare:

Modelele de tip pot fi efectuate folosind standardul C cast-operator to cast:

o șiruri de caractere la inți și invers ((int)"123", (șir)55)

o Șiruri în liste (listă întâi = (lista) „bună ziua”)

FLOW CONTROL


Eu fac oferă următorul subset de Cdeclarațiile lui. Ele pot fi folosite ca în C
limbaj de programare.

o expresie ;
Declarația de expresie simplă;

o Enunţul compus
Variabilele de orice tip pot fi definite și inițializate oriunde în interiorul oricărui compus
afirmație. The vizibilitate a unei variabile începe din punctul său de definire.

o if (condiție) declaraţie
În interiorul condiției o variabilă poate fi definită și inițializată. De exemplu,

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

În acest exemplu, proces nu se numeste daca getText () returnează un șir gol. The
variabil str nu există nici înainte, nici după if afirmație.

o if (condiție) declaraţie altfel declaraţie
Ca și în declarația anterioară, în interiorul condiției poate fi definită o variabilă și
initializat.

o pentru (inițial; condiție; creştere) declaraţie
Variabilele (de un singur tip) pot fi inițializate (și opțional definite) în
înăuntru secțiune. The înăuntru, condiție și creştere secțiunile pot rămâne goale. The
Secțiunea de condiție goală este interpretată ca „întotdeauna adevărat".

o în timp ce (condiție) declaraţie
În interiorul condiției o variabilă poate fi definită și inițializată.
Un complementar do ... in timp ce() declarația nu este disponibilă. Rețineți că definirea a
variabilă, folosind o expresie de inițializare înseamnă că inițializarea
exprimarea este executată la fiecare iterație a în timp ce afirmație. Deci următoarele
instrucțiunea nu se va termina niciodată și va afișa un flux fără sfârșit de valori 10:

în timp ce (int x = 10)
printf(x--, "\n");

o a reveni;, și reveni expresie;
Simplu reveni declarațiile pot fi folosite în anula funcții și reveni expresie
instrucțiunile sunt folosite în alte tipuri de funcții. Functia principal are tip de returnare
anula si asa in principal numai simplu reveni pot fi folosite enunţuri. Implicit an icmake
Valoarea de ieșire a scriptului este egală cu 0. Utilizați funcția încorporată ieşire (vezi mai jos) pentru a specifica
orice altă valoare de ieșire.

Be sfătuit: comportamentul funcțiilor non-void care nu returnează valori este nedefinit.

o rupe
Frunze pentru și în timp ce declarații, anulând condiția declarației.

o continua
Continuă cu următoarea iterație a lui a pentru or în timp ce afirmație.

o ieșire (expresie)
Încheie execuția unui icmake-script. The expresie trebuie să evalueze la o int
valoare, care devine valoarea de ieșire a scriptului.

PREDEFINIT FUNCȚII


Eu fac oferă următoarele funcții predefinite, care pot fi utilizate oriunde în icmake
scenarii. Următoarea prezentare generală este ordonată alfabetic după numele funcției.

o anula arghead(șir h)
Funcția de ajutor a exec() (vezi și mai jos la exec()): definește „capul argumentului”,
pentru a fi folosit cu exec(). În mod implicit, „head argument” este un șir gol.

o anula argtail (şir t)
Funcția de ajutor a exec() (vezi și mai jos la exec()): definește „coada argumentului”,
pentru a fi folosit cu exec(). În mod implicit, „coada argumentului” este un șir gol.

o int ascii (șir s)
Returnează primul caracter al s ca un int; de exemplu, ascii ("A") returnează 65;

o şir ascii(int i)
Returnări i ca un șir, de exemplu, ascii(65) returnează șirul "A";

o şir change_base(șir fişier, şir noua baza)
Schimbă numele de bază al fişier, returnează numele schimbat. De exemplu,
change_base("/path/demo.im", "afara") Returnează „/cale/out.im”;

o şir change_ext(șir fişier, şir nouext)
Modifică extensia lui fişier, returnează numele schimbat. De exemplu,
rss_changeExt("source.cc", „o”) Returnează "sursa.o";

o şir change_path(șir fişier, şir noua cale)
Modifică specificația căii de fişier, returnează numele schimbat. De exemplu,
change_path("tmp/binar", "/ usr / bin") Returnează „/usr/bin/binar”. Rețineți că
/-se introduce separatorul daca este necesar.

o şir chdir(șir newdir)
Schimbă directorul de lucru al scriptului, returnează directorul anterior ca absolut
cale.

Utilizare chdir(".") pentru a obține directorul de lucru curent, chdir("") poate fi obișnuit cu
obțineți directorul de lucru de pornire (această funcționalitate a fost întreruptă în versiuni
înainte de ora 7.00, dar acum este operațional). Funcția termină
icmake-script dacă este specificat newdir nu exista.

o şir chdir(int control, şir newdir)
Aceeași funcționalitate ca și funcția anterioară, dar prin specificare control as
P_NOCHECK. funcția nu va termina scriptul. Mai degrabă, va returna
directorul de lucru curent al scriptului.

o cmdhead(șir h)
Funcția de ajutor a exec() (vezi și mai jos la exec()): Definește un „cap de comandă”, la
să fie folosit cu exec(). În mod implicit, „capul de comandă” este un șir gol.

o cmdtail(șir t)
Funcția de ajutor a exec() (vezi și mai jos la exec()): Definește o „coadă de comandă”, la
să fie folosit cu exec(). În mod implicit, „coada de comandă” este un șir gol.

o ecou (int opta)
Controlează ecoul programelor apelate (și argumentele acestora), specificați OFF dacă ecou
nu este solicitat. În mod implicit eco (ACTIVAT) este folosit.

o şir element (int index, listă (Sau şir) var)
Acționează identic cu operatorul index: consultați indexul ([]) operator în
secțiune OPERATORI.

o listă eval(șir str)
Această funcție acționează identic cu operatorul de backtick. Exemplul oferit cu
prin urmare, operatorul de backtick ar fi putut fi scris astfel:

printf(eval("ls")); // tipărește elementele în curent
// directorul

o exec(șir cmd, ...)
Execută comanda cu argumente. Fiecare argument va fi prefixat de arghead()'S
argument şi postfixat de argtail()argumentul lui. Rețineți că nu sunt introduse spații libere
între arghead()conținutul lui, argumentul propriu-zis și argtail()argumentul lui. Toate
astfel argumentele modificate sunt concatenate, de data aceasta separate prin spații libere simple și
apoi cmdhead()Conținutul lui este inserat între comandă și primul argument
(pe ambele părți delimitate de un singur blanc) și cmdtail()conținutul lui este atașat
la argumente (din nou, separate printr-un singur gol). PATH este căutat pentru a localiza
cmd. 0 este returnat.

o exec(int verificacmd, şir cmd, ...)
Aceeași funcționalitate ca și funcția anterioară, dar prin specificare control as
NU A VERIFICAT funcția nu va termina scriptul. Mai degrabă, va returna
numit stare de ieșire a comenzii sau 0x7f00 dacă comanda nu a fost găsită.

o execute(șir cmd, şir cmdhd, şir arghd, ..., şir argtl, şir cmdtl)
La fel ca exec(), dar trebuie specificate comanda head/tail și argument head/tail.

Comanda executată efectiv începe cu cmd, urmat de cmdhd. Urmează o serie
de argumente urmează, fiecare cuprins de arghd și argtl. Comanda se termină cu
cmdtl. 0 este returnat

o executa (int control, şir cmd, şir cmdhd, şir arghd, ..., şir argtl,
şir cmdtl)
Aceeași funcționalitate ca și funcția anterioară, dar prin specificare control as
NU A VERIFICAT funcția nu va termina scriptul. Mai degrabă, va returna
numit stare de ieșire a comenzii sau 0x7f00 dacă comanda nu a fost găsită.

o int există (șir fişier)
Returnează o valoare diferită de zero dacă fişier există, în caz contrar se returnează 0.

o listă fgets(șir fişier, listă decalaj)
NOTĂ: in icmake versiunea 8.00.00 din care a fost schimbat prototipul acestei funcții
listă fgets(șir fişier, int decalaj) la listă fgets(șir fişier, listă decalaj).

Următoarea linie găsită la offset conținut în compensa se citește din fişier. Treci un
listă goală la fgets a citi fişier de la începutul ei.

Returnează o listă care conține ca prim element conținutul liniei de citire
(fara \n terminator de linie), ca al doilea element al său, terminatorul liniei `\n"
(dacă este întâlnit), iar ca al treilea element șirul OK dacă o linie a avut succes
citit, FAIL dacă citirea din fișier nu a reușit. Când citiți la EOF o listă goală este
întors. Lista returnată poate conține elemente suplimentare, care sunt interne
folosit de fgets când citești următorul rând.

Pentru a citi mai multe rânduri, începeți prin a trece o listă goală ca primește al doilea argument.
Pentru a citi rândurile următoare, transmiteți lista returnată anterior către ale lui fgets al doilea
a susținut.

Iată un exemplu care arată cum să citiți un fișier complet:

list ret;
în timp ce (1)
{
ret = fgets("nume fișier", ret);
dacă (!ret)
rupe;
proces(ret[0], ret[1]);
}

o int fprintf(șir nume de fișier, ...)
Adaugă toate argumentele (separate prin virgulă) la fișier nume de fișier. Returnează numărul de
argumente tipărite.

o int fprintf(șir nume de fișier, şir format, ...)
Adaugă toate argumentele (separate prin virgulă) la fișier nume de fișier. Returnează numărul de
argumente tipărite.

If format conține substituenți %1 .. %n rezultatul este formatat (vezi și
strformat). Rețineți că, în acest caz, numărarea argumentelor (de asemenea) începe dincolo de
șir de format: primul argument care urmează format este denumit %1.

o şir get_base(șir fişier)
Returnează numele de bază al fişier. Numele de bază este fișierul fără prefixul de cale
si fara prelungirea lui. Extensia este toate informațiile începând cu finala
punct în numele fișierului. Dacă nu este găsit niciun punct final, numele fișierului este numele de bază.
De exemplu, numele de bază al ab este egală a, numele de bază al abc este egală ab, baza
numele a/b/c este egală c.

o şir obține()
Returnează următoarea tastă apăsată ca șir (apăsarea „Enter” nu este necesară).

o şir get_dext(șir fişier)
Returnează extensia lui fişier, inclusiv punctul de separare. Extensia este totul
informații începând cu punctul final al numelui fișierului.

Dacă nu este găsit niciun punct final, este returnat un șir gol.

o listă getenv(șir envvar)
Returnează valoarea variabilei de mediu învvar într-o listă care conține două elemente:

primul element indică dacă a fost definită variabila de mediu (valoare
"1") sau nu (valoare "0");
al doilea element indică valoarea variabilei de mediu.

Variabilele de mediu sunt de forma variabila=valoare, iar dacă este definită lista
al doilea element conţine valoare. Dacă valoarea este goală, variabila este definită, dar
nu are niciun text asociat.

o şir get_ext(șir fişier)
Returnează extensia lui fişier, cu excepția punctului de separare. Extensia este totul
informații începând cu punctul final din numele fișierului.

Dacă nu este găsit niciun punct final, este returnat un șir gol.

o int getpid()
Returnează codul de proces al interpretorului de cod de octeți icmake icm-exec.

o şir devine()
Returnează următoarea linie citită de la tastatură ca a şir. Linia introdusă pe
tastatura trebuie terminată cu o tastă „Enter”, care nu este stocată în fișierul returnat
șir.

o şir get_path(șir fişier)
Returnează prefixul de cale al fişier. Prefixul căii este toate informațiile până la (și
inclusiv) separatorul final de director (care este, în funcție de operare
sistem, o bară oblică înainte sau inversă).

Dacă nu este găsită o cale, este returnat un șir gol.

o int listfind(lista primul, şir str)
Returnează primul index în întâi unde sfoara str este găsit, sau -1 dacă întâi nu
conţine str.

o int listen(lista l)
Returnează numărul de elemente în listă.

o listă listeunion(list lhs, listă rhs)
Returnează o listă care conține uniunea elementelor din lhs și RHS.

o listă listeunion(list primul, şir str)
Returnează o listă care conține uniunea elementelor din întâi și str.

o listă makelist(șir masca)
Returnează o listă cu toate fișierele care se potrivesc masca. De exemplu, makelist("*.c") returnează o listă
care conțin toate fișierele care se termină în .c.

o listă makelist(tip, şir masca)
La fel ca și funcția anterioară, dar tipul elementelor directorului poate fi
specificat ca prim argument:

semnificația simbolului
IS_ALL obține toate intrările din director
IS_DIR obține toate directoarele, inclusiv . și ..
IS_FILE obține o listă de fișiere
IS_SUBDIR obține toate subdirectoarele

Rețineți că modelul * nu se va potrivi cu intrările ascunse în operarea de tip Unix
sisteme. Utilizare .* pentru asta.

o listă makelist(șir masca, mai nou, şir comparefile)
Returnează lista tuturor fișierelor care se potrivesc cu masca care sunt mai noi decât cea furnizată
comparefile. Operator mai tanar poate fi folosit în loc de mai nou. Rețineți că mai nou și
mai tanar sunt operatori, nu șiruri.

o listă makelist([int = IS_FILE,] şir masca, mai nou, şir comparefile)
La fel ca și funcția anterioară, dar tip poate fi specificat ca în listă makelist(tip,
şir masca).

o makelist(șir masca, mai batran, şir comparefile)
Vezi deasupra; returnează o listă de fișiere care sunt mai vechi decât fișierul de comparare.

o makelist(tip, şir masca, mai batran, şir comparefile)
La fel ca și funcția anterioară, dar tip poate fi specificat ca în listă makelist(tip,
şir masca).

o int printf(...)
Afișează toate argumentele (separate prin virgulă) pe ecran (adică fluxul de ieșire standard).
Returnează numărul de argumente imprimate.

o int printf(șir format, ...)
Afișează toate argumentele (separate prin virgulă) pe ecran (adică fluxul de ieșire standard).
Returnează numărul de argumente tipărite (the format șirul contează ca un singur argument).

If format conține substituenți %1 .. %n rezultatul este formatat (vezi și
strformat).

o int putenv(șir envvar)
Adaugă învvar la curent (icmake) mediu Utilizați formatul: „VAR=valoare”.
Returnează 0.

o şir redimensionează (șir str, int lungime nouă) Returnează o copie a șirului str, redimensionat la
noua lungime personaje. Dacă noua lungime este negativ, atunci este returnat un șir gol,
if noua lungime depășește str lungime, apoi caracterele nou adăugate sunt inițializate
la spații goale.

o int dimensiunea(lista l)
Depreciat: utilizare ascultă.

o int sizeoflist(lista l)
Depreciat: utilizare ascultă.

o listă stat(șir intrare)
Returnări Stat(2) informații despre intrarea în director intrare ca o listă. Lista returnată
are două elemente: elementul 0 este atribut valoare, elementul 1 conține dimensiunea de
fișierul.

Atributele sunt returnate ca indicatori de biți, compuse din următoarele predefinite
constante:

S_IFCHR S_IFDIR S_IFREG
S_IREAD S_IWRITE S_IEXEC

A se vedea Stat(2) pagina de manual pentru semnificațiile acestor constante.

o listă stat (verificare, şir intrare)
La fel ca și funcția anterioară, dar prin specificare control as P_NOCHECK Funcția
nu va termina scriptul. Mai degrabă, se întoarce StatValoarea de returnare a lui (2).

o int strchr(șir str, şir caractere)
Returnează primul index în str unde vreunul dintre personaje rezervoare este găsit sau -1
if str nu conține niciun caracter din rezervoare.

o int strlen(șir str)
Returnează numărul de caractere din str (fără numărarea finalului 0).

o int strfind(șir carul de fan, şir ac)
Returnează indexul în carul de fan Unde ac este găsit, sau -1 dacă ac nu este cuprins
in carul de fan.
Acest funcţie a fost denumit strstr() in Versiunile înainte 7.00.

o int strformat(șir format,...)
Returnează un șir formatat folosind substituenții %1 .. %2 pentru a adresa argumente
următorul format.
Exemplu:

void main ()
{
int i = 10;
int j = 20;
șir s1;
șir s2;
// abordare traditionala:
s1 = (șir)i + " " + (șir)j + " " + (șir)i;
// folosind strformat:
s2 = strformat("%1 %2 %1", i, j);
printf("s1 = %1, s2 = %2\n", s1, s2);
}

o şir strlwr(șir s)
Returnează un duplicat cu minuscule s.

o listă strtok(șir str, şir separatoare)
Returnează o listă care conține toate subșirurile de str separate de una sau mai multe
caractere (consecutive) în separatoare. De exemplu, strtok ("bună ziua icmake's+world”, " +")
returnează lista care conține cele trei șiruri "buna", "icmake's", și "lume".

o şir strupr(șir s)
Returnează un duplicat cu majuscule s.

o şir substr(șir text, int decalaj, int numara)
Returnează un subșir de a) Sport and Nutrition Awareness Day in Manasia Around XNUMX people from the rural commune Manasia have participated in a sports and healthy nutrition oriented activity in one of the community’s sports ready yards. This activity was meant to gather, mainly, middle-aged people from a Romanian rural community and teach them about the benefits that sports have on both their mental and physical health and on how sporting activities can be used to bring people from a community closer together. Three trainers were made available for this event, so that the participants would get the best possible experience physically and so that they could have the best access possible to correct information and good sports/nutrition practices. b) Sports Awareness Day in Poiana Țapului A group of young participants have taken part in sporting activities meant to teach them about sporting conduct, fairplay, and safe physical activities. The day culminated with a football match. , începând de la compensa, constând din conta personaje. Dacă
compensa depășește (sau egalează) dimensiunea șirului sau dacă conta <= 0, apoi un șir gol
este returnat. Dacă compensa este mai mic decât 0, atunci se utilizează 0.

o int sistem (șir comandă)
Executa comandă. Valoarea returnată indică valoarea de ieșire a comenzii executate. The
şir comandă poate conține caractere de redirecționare și/sau canalizare.

o int sistem (int control, şir comandă)
Aceeași funcționalitate ca și funcția anterioară, dar prin specificare control as
NU A VERIFICAT funcția nu va termina scriptul. Mai degrabă, va returna
numit stare de ieșire a comenzii sau 0x7f00 dacă comanda nu a fost găsită.

o şir trim(șir s)
Returnează o copie a s fără spații albe înainte și în urmă.

o şir trimleft(șir str)
Returnează o copie a s fără spații albe care conduc.

o şir trim(șir s)
Returnează o copie a s fără spații albe în urmă.

USER DEFINIT FUNCȚII


anula principal

Eu fac scripturile trebuie să fie prevăzute cu o funcție definită de utilizator principal. Functia principal are
trei parametri opționali, care pot fi omisi din ultimul (envp) la primul
(argc), ca în C. Prototipul său complet este (notă: anula tip de returnare):

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

In main (),

o argc reprezintă numărul de elemente în argv;

o argv conține argumentele, elementul 0 fiind egal cu numele .bim
fişier;

o envp conţine variabilele „de mediu”. Functia ascultă pot fi utilizate pentru a
determina numarul elementelor sale. Elemente în envp au forma
variabila=valoare. Alternativ, funcția getenv poate fi folosit pentru a recupera a
variabilă de mediu specifică imediat. Exemplu:

void main(int argc, list argv)
{
lista de compilat;
int idx;

dacă (argc == 1)
utilizare(element(0, argv));

dacă (toCompile = modificat ("*.cc"))
{
pentru (idx = lungime(la Compilare); idx--; )
compile(element(idx, toCompile));

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

Inițializarea tuturor variabilelor globale în ordinea definițiilor lor principal este numit de
icmakeSistemul de asistență de rulare al lui pentru a efectua sarcini suplimentare.

În plus, definit utilizator funcții

Pot fi definite funcții suplimentare. Odată definite, aceste funcții pot fi apelate. Redirecţiona
referirea fie a variabilelor, fie a funcțiilor nu este acceptată, dar apelarea recursiv
funcții este. Deoarece declarațiile de funcții nu sunt acceptate, recursiunea indirectă nu este
sprijinit fie.

Funcțiile definite de utilizator trebuie să aibă următoarele elemente:

o Tipul de returnare al funcției, care trebuie să fie unul dintre gol, int, şir or listă. Acolo
nu este un tip implicit.

o Numele funcției, de exemplu, compila.

o O listă de parametri, care definește zero sau mai mulți parametri separați prin virgulă. Parametrii
ele însele constau dintr-un nume de tip (int, şir, Sau listă) urmată de
identificatorul parametrului. De exemplu, (şir fisier, şir sursa).

sau A corp înconjurat de o pereche de bretele ({ și }).

Corpurile de funcții pot conține definiții de variabile (inițializate opțional). Variabil
definițiile încep cu un nume de tip, urmat de una sau mai multe separate prin virgulă (opțional
inițializat) identificatori de variabile. Dacă o variabilă nu este inițializată explicit, este
initializat implicit. Implicit an int variabila este inițializată la 0, a şir is
initializat la un sir gol ("") Și un listă este inițializată la o listă de zero elemente.

Pe lângă definițiile variabilelor, corpurile pot conține zero sau mai multe declarații (cf.
secțiune FLOW CONTROL). Rețineți că variabilele pot fi definite (și, opțional, inițializate)
oriunde în interiorul funcțiilor și, de asemenea, în dacă, pentru și în timp ce declarații.

Comportamentul icmake-scripturile care folosesc funcții non-void care nu returnează valori nu este
definit.

Utilizați icmake online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

Comenzi Linux

Ad