EngelsFransSpaans

Ad


OnWorks-favicon

icmake - Online in de cloud

Voer icmake uit in OnWorks gratis hostingprovider via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht icmake die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


icmake - Een programma onderhoud (maken) hulpprogramma met a C-achtige grammatica

KORTE INHOUD


ikmaken [Opties] bron[.im] [bestemming[.bim]] [-- [argumenten]]

ikmun bimbestand

PRODUCTBESCHRIJVING


icmake(1) kan worden gebruikt als alternatief voor: maken(1). In de standaard bedrijfsmodus is het
roept de volgende programma's aan:

o icm-pp om het icmake-bestand voor te verwerken

o icm-comp naar byte-code compileren de ikmaken s

o icm-exec om het bytecodebestand uit te voeren

icmake stelt programmeurs in staat om een ​​programmeertaal te gebruiken (die sterk lijkt op de bekende
C-programmeertaal) om de acties te definiëren die betrokken zijn bij (complexe) programma's
onderhoud. Voor deze, ikmaken biedt verschillende speciale operators en een reeks ondersteuning
functies die hun nut hebben bewezen bij het onderhoud van programma's.

Het programma ikmun(1) kan worden gebruikt om het gecompileerde bytecode-bestand (.bim) te demonteren. icmun
wordt voornamelijk gebruikt voor illustratie, onderwijs en foutopsporing.

Traditionele make-utilities compileren bronnen opnieuw zodra headerbestanden zijn gewijzigd. In de
context van C + + programma-ontwikkeling is dit vaak een slecht idee, omdat het toevoegen van een nieuw lid aan een
class vereist normaal gesproken niet dat je de bronnen van de klasse opnieuw compileert. Om de klas te behandelen
afhankelijkheden ingebed(1) mag inspecteren KLASSEN bestanden die kunnen worden gebruikt om afhankelijkheden te definiëren
tussen de klassen. Standaard worden klassenafhankelijkheden niet geïnterpreteerd. Verwijs naar de icmconf(7)
man-pagina voor meer details.

OPTIES


icmake gebruikt de volgende bestanden en opties:

o (bron): ikmaken scriptbronbestand (standaardextensie: .im).

o dest: binair ikmaken scriptbestand (standaard: `bron'.bim, het `.bim-bestand' genoemd
hieronder).

o --: ikmaken argumenten scheidingsteken scheiden ikmaken argumenten van argumenten doorgegeven
naar het .bim-bestandnl() betoogt: volgende argumenten -- worden doorgegeven aan het .bim-bestand
zoals het is, en zijn verkrijgbaar bij de lijst argv parameter gedefinieerd als de ikmaken
script's hoofd- de tweede parameter van de functie (zie hieronder in sectie) GEBRUIKER BEPAALD
FUNCTIES). Voor sommige opties (zie hieronder) de -- scheidingsteken is niet vereist.

icmake ondersteunt verschillende opties, die hierna worden beschreven. De -h optie heeft voorrang op alle andere
opties, de -a optie heeft voorrang op alle andere opties behalve voor -h. Van de resterende actie
opties (-B, -C, -e, -l, -p en -t) er mag er maar één worden gespecificeerd:

o -a
toon informatie over ikmaken, overruled door -h;

o -b
stopgezet: gebruik in plaats daarvan optie -e;

o -c
de ikmaken het bronbestand wordt gecompileerd, waardoor een .bim-bestand wordt gegenereerd;

o -e
voer het ikmaken .bim-bestand, gegeven als ikmaken's eerste bestandsargument. Eventuele extra
argumenten worden doorgegeven aan het .bim-bestand zoals het is, en -- moet niet worden gespecificeerd;

o -F
de bestandsnamen en vlaggen evenals een overzicht van alle acties die moeten worden uitgevoerd door
ikmaken worden weergegeven op de standaard uitvoerstroom;

o -h
geef gebruiksinformatie op en beëindig ikmaken;

o -i
het eerste argument is de ikmaken bronbestand, het standaard binaire bestand is
indien nodig aangelegd. Eventuele aanvullende argumenten worden doorgegeven aan het .bim-bestand
zoals het is, en -- moet niet worden gespecificeerd;

o -p
de ikmaken bronbestand is alleen voorbewerkt en het voorverwerkte bestand wordt geschreven
naar ikmaken's tweede bestandsargument (standaard `bron'.pim);

o -q
genegeerd, wordt in de toekomst verwijderd ikmaken versie;

o -t
het volgende argument -t is de naam van een tijdelijk .bim-bestand, dat is verwijderd
na ikmaken's oproep. Wanneer . is opgegeven als de naam van het tijdelijke .bim-bestand
dan de standaard tijdelijke map, gevolgd door ikmaken's proces-id, gevolgd door
.bim is gebruikt.

Na de naam van het tijdelijke .bim-bestand volgt de naam van de ikmaken bronscript
moet worden opgegeven. Eventuele aanvullende argumenten worden as-is doorgegeven aan het .bim-bestand, en
-- moet niet worden gespecificeerd; Na het instellen van de uitvoerbare vlag van het bronscriptbestand
(chmod +x script), en het voorzien van een eerste regel zoals deze:

#!/usr/bin/icmake -t.

de ikmaken script kan direct worden aangeroepen:

script arg1 arg2

in welk geval de ikmaken script `schrift' wordt uitgevoerd terwijl het de . ontvangt
argumenten script arg1 arg2.

o -T
deze optie moet voorzien zijn van de naam van een map die wordt gebruikt om op te slaan
tijdelijke bestanden. Bijvoorbeeld bij het samenstellen van een ikmaken script, de uitvoer van ikmaken's
preprocessor is een tijdelijk bestand dat bij afsluiten wordt verwijderd. Standaard / tmp is gebruikt,
tenzij / tmp is geen beschrijfbare map, in welk geval de huidige gebruiker $ HOME
map wordt gebruikt. Impliciete tijdelijke bestandsnamen beginnen altijd met het proces-ID van
de huidige ikmaken proces.

o -v
tonen ikmaken's versienummer, en end ikmaken, overruled door -h

icmun:

bimbestand: binair ikmaken Script bestand.

VOORVERWERKER RICHTLIJNEN


De volgende preprocessor-richtlijnen zijn beschikbaar:

commentaar:
standaard C commentaar (allemaal tussen /* en */) evenals commentaar-tot-einde-regel (alle
regel inhoud volgende //) worden genegeerd.

o Shell opstarten: de eerste regel van de ikmaken-script kan beginnen met #!pad, Waar
pad definieert de absolute locatie van de ikmaken programma. Door het script te maken
uitvoerbaar is, kan het worden aangeroepen zonder expliciet aan te roepen ikmaken.

Bijvoorbeeld, als de eerste regel van een (uitvoerbaar) icmakefile 'icm' (zonder extensie)
bevat

#!/usr/bin/icmake -i

harte icm kan worden uitgegeven als een commando, dus het uitvoeren van

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

Als alternatief,

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

kan worden gebruikt, wat resulteert in de uitvoering van

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

In dit geval wordt het binaire bestand bij het afsluiten verwijderd.

o #include "bestandsnaam"
Het bestand bestandsnaam is opgenomen op de locatie van de richtlijn

o #include
Het bestand bestandsnaam is inbegrepen op de locatie van de #include richtlijn; bestandsnaam
wordt doorzocht in de door dubbele punten gescheiden mappen gespecificeerd door de IM milieu
variabel. Het eerste optreden van bestandsnaam in de mappen gespecificeerd door de IM
omgevingsvariabele wordt gebruikt.

o #define identificatie [definitie]
De tekst identificatie wordt vervangen door definitie. De definitie kan bevatten:
verwijzingen naar reeds gedefinieerde identifiers, met behulp van de ${identificator} formaat. Als de
${identificator} is (nog) niet gedefinieerd, de tekst ${identificator} wordt letterlijk bewaard.
Om oneindige recursie maximaal 100 . te voorkomen ${identificator} vervangingen zijn toegestaan.

Definities gaan verder op de volgende regel als het laatste teken op een regel a . is
schuine streep (\). (wat niet in de definitie is opgenomen). de preprocessor
voegt tekenreeksen met dubbele aanhalingstekens samen, en tekenreeksen met dubbele aanhalingstekens mogen niet meerdere overspannen
lijnen. Meerdere spaties (buiten dubbele aanhalingstekens) in definities zijn
samengetrokken tot een enkele lege ruimte.

De definitie die volgt op de #define's identificatie is optioneel. Indien weggelaten, de
macro is gedefinieerd, zodat het kan worden gebruikt in #if(n)def richtlijnen (zie hieronder), maar ze
worden niet vervangen door tekst in ikmaken code verklaringen.

o #ifdef identificatie
Indien de identificatie macro werd gedefinieerd als het volgende codeblok (tot een overeenkomende #anders
or #stop als richtlijn is gelezen) is byte-gecompileerd. Anders is het codeblok
buiten beschouwing gelaten.

o #ifndef identificatie
Indien de identificatie makro was niet definieerde het volgende codeblok (tot een overeenkomende)
#anders or #stop als richtlijn is gedetecteerd) is byte-gecompileerd. Anders, het blok van
code wordt genegeerd.

o #anders
Beëindigt a #ifdef en #ifndef richtlijn, het terugdraaien van de acceptatiebeslissing over
de volgende code. Maar een #anders richtlijn kan worden geassocieerd met: #if(n)def
richtlijnen.

o #stop als
Beëindigt het preprocessor-blok beginnend bij de matching #ifdef, #ifndef or #anders
richtlijn. De #stop als directory en zijn matching #if(n)def richtlijn moet zijn
opgegeven in hetzelfde bestand.

o #undef identificatie
verwijderen identificatie uit de reeks gedefinieerde symbolen. Dit heeft geen invloed op de
specificatie van eerder gedefinieerde symbolen waarin: identificatienummers definitie
is gebruikt. Indien identificatie niet is gedefinieerd, wordt een waarschuwing gegeven.

GEGEVENS SOORTEN


icmake ondersteunt deze gegevenstypen:

o ASCII karakter constante
ASCII-tekenconstanten bestaan ​​uit één teken, omgeven door enkel of dubbel
citaten. Enkele tekens (bijv. 'een') vertegenwoordigen het personage zelf. Standaard
ontsnappingsreeksen (bijv. '\N') worden ondersteund en vertegenwoordigen hun standaard geconverteerde
waarde (bijv. '\N' staat voor ascii-waarde 10 (decimaal)). Niet-standaard ontsnapping
reeksen (bijv. '\x') vertegenwoordigen het ascii-teken volgend op het escape-teken
(zo '\x' is gelijk aan 'x'). Escape-reeksen bestaande uit drie octale cijfers vertegenwoordigen
het ascii-teken dat overeenkomt met de octale waarde modulo 256 (bijv. '\123').
Escape-reeksen bestaande uit een x gevolgd door twee hexadecimale cijfers vertegenwoordigen
het ascii-teken dat overeenkomt met de hexadecimale waarde (bijv. '\xa4').

o int
Integrale waarden, variërend van -0x8000 door 0x7fff. int constanten kunnen zijn
gespecificeerd als decimale getallen (beginnend met cijfers 1 tot en met 9), octale getallen
(beginnend met 0, gevolgd door een of meer octale cijfers) hexadecimale getallen
(beginnend met 0x, gevolgd door een of meer hexadecimale cijfers) of als ASCII
karakter constanten.

o snaar
Tekst variabelen. Stringconstanten worden gescheiden door dubbele aanhalingstekens. Meerdere tekenreeksen
constanten kunnen aaneengeschakeld worden, maar een enkele stringconstante mag niet meerdere overspannen
lijnen. Stringconstanten gescheiden door alleen witruimte (dwz spaties, nieuwe regels,
comment) zijn aaneengeschakeld en vertegenwoordigen één enkele stringconstante. om een ​​aan te geven
end-of-line in een stringconstante gebruik de \n ontsnappingsvolgorde.

ASCII-tekenconstanten omgeven door dubbele aanhalingstekens kunnen ook worden gebruikt in
rekenkundige uitdrukkingen als een van de operanden an . is int. Het enkele karakter
tekenreeksconstante Dan moet je een constante zijn, en kan geen zijn snaar variabel.

Evenzo kunnen ASCII-tekenconstanten omringd door enkele aanhalingstekens worden gebruikt in
situaties waarin een tekenreeksoperand wordt verwacht.

o lijst
Een datastructuur met een reeks individueel toegankelijke snaar waarden. Wanneer
een lijst bevat elementen, het eerste element wordt aangegeven met index 0.

o komen te vervallen
Gebruikt met functiedefinities om aan te geven dat de functie geen a . retourneert
waarde.

Variabelen kunnen zowel op mondiaal niveau als op elk lokaal niveau binnenin worden gedefinieerd
functies. Wanneer gedefinieerde interne functies, de standaard C scoping en zichtbaarheidsregels
van toepassing zijn. Lokale variabelen kunnen bijvoorbeeld alleen op zichzelf of in dieper geneste worden gebruikt
blokken, wordt hun zichtbaarheid gemaskeerd in dieper geneste blokken door een identiek
benoemde variabele binnen die dieper geneste blokken. Variabelen zijn sterk getypt, en
kan geen type hebben komen te vervallen.

Variabelen kunnen worden geïnitialiseerd wanneer ze zijn gedefinieerd. Initialisaties zijn uitdrukkingen, die:
kan vooraf of door de gebruiker gedefinieerde functies, constante waarden en waarden van variabelen gebruiken die
zichtbaar op het punt van definitie.

VOORGEDEFINIEERD CONSTANTEN


De volgende constanten zijn vooraf gedefinieerd door ikmaken. Alle zijn constant int waarden:

─────────────────────────────────
symboolwaarde bedoeld voor
─────────────────────────────────
O_ALL 8 makelist
O_DIR 2 makelist
O_FILE 1 make-lijst
O_SUBDIR 4 makelist
─────────────────────────────────
UIT 0 echo
AAN 1 echo
─────────────────────────────────
P_CHECK 0 systeemoproepen
P_NOCHECK 1 systeemoproepen
─────────────────────────────────
S_IEXEC 32-statistieken
S_IFCHR 1 stat
S_IFDIR 2-statistieken
S_IFREG 4 stat
S_IREAD 8-statistieken
S_IWRITE 16-statistieken
─────────────────────────────────

De volgende constanten zijn architectuurafhankelijk:

────────────────────────────────────────────────── ────────────
symbool 1 indien gedefinieerd op het platform, anders 0
────────────────────────────────────────────────── ────────────
unix Unix, meestal met GNU's gcc-compiler
UNIX is mogelijk ook beschikbaar
linux x86 met Linux (meestal met gcc)
LINUX is mogelijk ook beschikbaar
M_SYSV, M_UNIX x86 met SCO/Unix
_POSIX _SOURCE Unix met Posix-compatibele compiler
__hpux HP-UX, met de native HP-compiler
────────────────────────────────────────────────── ────────────

OPERATOREN


int-getypt operand(en):

Alles C operators zijn beschikbaar (behalve voor pointer-operators, zoals ikmaken ondersteunt
wijzers). Ze werken als hun C-programmeertaal tegenhangers.

tekenreeks getypt operand(en):

Voor snaar type variabelen en/of constanten zijn de volgende operators beschikbaar (a en b
vertegenwoordigen snaar variabelen of constanten):

o a + b: retourneert een nieuwe snaar waarde die de aaneenschakeling van bevat snaar waarden a
en b. Merk op dat snaar constanten kunnen direct worden aaneengeschakeld (zonder gebruik te maken van de +
operator), bijv. de volgende twee regels definiëren beide de tekenreeks "Hallo wereld":

"Hallo Wereld"
"hallo" + "wereld"

o a += b: a moet een zijn snaar variabele, waarop de snaar variabele of waarde b is
toegevoegd.

o tekenreeksvergelijkingen: operators == != <= >= < > != en == kan worden toegepast op snaar
waarden of variabelen, waarbij 1 wordt geretourneerd als de vergelijking slaagt, anders 0.
De vergelijking is hoofdlettergevoelig en volgt de volgorde of tekens zoals gedefinieerd
in de ASCII karakterset.

o !a: de boolean ! (niet) operator geeft 1 terug als de snaar a is leeg, anders is 0
teruggekeerd.

o a jonger b, a nieuwere b: geeft 1 terug als bestand a is recenter dan bestand b. bijv.,
"bron.cc" nieuwere "bron.o". De bestanden a en b hoeven niet te bestaan: als beide niet bestaan
bestaan ​​0 wordt geretourneerd; indien b bestaat niet, 1 wordt geretourneerd; indien a bestaat niet 0 is
geretourneerd; als ze even oud zijn, wordt 0 geretourneerd. (de bestaat() voorgedefinieerde functie
(zie hieronder, sectie) VOORGEDEFINIEERD FUNCTIES) kan worden gebruikt om expliciet te testen of a
Bestand bestaat).

o a ouder b: wordt 1 als bestand a is ouder dan bestand b. bijv., "libprog.a" ouder
"bron.o". De bestanden a en b hoeven niet te bestaan: als beide niet bestaan ​​0 is
geretourneerd; indien a bestaat niet, 1 wordt geretourneerd; indien b bestaat niet 0 wordt geretourneerd; indien
ze zijn even oud 0 wordt geretourneerd.

o []: de indexoperator haalt een teken op uit een tekenreeksvariabele of constante: it
geeft een string terug als an rwaarde. Daarom compileert de volgende instructie OK:

// neem aan dat str1 en str2 strings zijn
str1 = str2[3];

maar de volgende instructie kan niet worden gecompileerd:

str2[3] = "een";

Er wordt een lege tekenreeks geretourneerd als een ongeldige indexwaarde wordt opgegeven.

o De `backtick`-operator (`snaar' cmd`)
Een string die tussen twee backticks wordt geplaatst, wordt uitgevoerd door de openen(3) functie. De
standaarduitvoer gegenereerd door de opdracht die is opgeslagen in het stringargument is
geretourneerd als een lijst. Een lege lijst geeft aan dat de opdracht niet kon worden uitgevoerd.
Een opdracht die kan worden uitgevoerd maar geen uitvoer heeft opgeleverd, retourneert een lijst
met één leeg element. De standaardfoutstroomuitvoer van de opdracht is niet:
verzameld door de backtick-operator. Standaard shell-omleiding kan echter zijn:
gebruikt om de uitvoer van de standaardfoutstroom te verzamelen. Voorbeeld:

printf(`"ls"`); // drukt de elementen af ​​in
// de huidige map

De vooraf gedefinieerde functie eval(reeks cmd) gedraagt ​​zich precies als de backtick
operator: het zijn synoniemen.

lijst getypt operand(en):

Voor lijst type variabelen en/of waarden zijn de volgende operators beschikbaar:

o a + b: retourneert een nieuwe lijst waarde die de aaneenschakeling van bevat lijst waarden a en
b. Dit is niet een ingestelde bewerking: als een element zowel in a en in b, ze zullen
verschijnen twee keer in de resulterende lijst (set-toevoeging wordt geleverd door de ingebouwde
functie lijstunie).

o a - b: retourneert een nieuwe lijst waarde die de elementen bevat in a die niet aanwezig zijn
in b. Deze is een set-difference operatie: de geretourneerde lijst bevat alle elementen
in a die geen elementen zijn van b.

o a += b: elementen in b worden toegevoegd aan de elementen in a, wat een moet zijn lijst
variabel. Dit is niet een vaste operatie.

o a -= b: elementen in b worden verwijderd uit de elementen in a, wat een moet zijn lijst
variabel. Dit is een vaste operatie: alle elementen van a die worden gevonden in b zijn
verwijderd van a.

o gelijkheidsvergelijkingen weergeven: operators != en == kan worden toegepast op lijst waarden of
variabelen. Operator == geeft 1 terug als beide lijsten element voor element identiek zijn
elementen, anders wordt 0 geretourneerd. Operator != keert het resultaat van om ==.

o !a: de boolean ! operator geeft 1 terug als de lijst a is leeg, anders is 0
teruggekeerd.

o []: de indexoperator haalt een lijstelement op uit een lijstvariabele: het retourneert a
tekenreeks als een rwaarde. Daarom compileert de volgende instructie OK:

// neem aan dat lst een lijst is, str is een string
str = lst[3];

maar de volgende instructie kan niet worden gecompileerd:

lst[3] = str;

Er wordt een lege tekenreeks geretourneerd als een ongeldige indexwaarde wordt opgegeven.

Gieten:

Typecasts kunnen worden uitgevoerd met behulp van de standaard C cast-operator om te casten:

o Strings naar ints en vice versa ((int)"123", (snaar)55)

o Strings naar lijsten (lijst lst = (lijst)"hallo")

STROMEN CONTROL


icmake biedt de volgende subset van C's verklaringen. Ze kunnen worden gebruikt zoals in de C
programmeertaal.

o uitdrukking ;
De duidelijke uitdrukkingsverklaring;

o De samengestelde verklaring
Variabelen van elk type kunnen overal binnen elke verbinding worden gedefinieerd en geïnitialiseerd
uitspraak. De zichtbaarheid van een variabele begint op het punt van definitie.

o if (voorwaarde) verklaring
Binnen de voorwaarde kan een variabele worden gedefinieerd en geïnitialiseerd. bijv.

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

In dit voorbeeld wordt niet genoemd als getText () geeft een lege string terug. De
variabele str bestaat niet voor of na de if verklaring.

o if (voorwaarde) verklaring anders verklaring
Net als bij de vorige instructie, kan binnen de voorwaarde een variabele worden gedefinieerd en
begonnen.

o For (in het; staat; toename) verklaring
Variabelen (van een enkel type) kunnen worden geïnitialiseerd (en optioneel worden gedefinieerd) in de
init sectie. De init, voorwaarde en aanwas secties kunnen leeg blijven. De
lege voorwaarde sectie wordt geïnterpreteerd als 'altijd' waar.

o en (voorwaarde) verklaring
Binnen de voorwaarde kan een variabele worden gedefinieerd en geïnitialiseerd.
een complementaire do ... terwijl() verklaring niet beschikbaar. Merk op dat het definiëren van a
variabele, betekent het gebruik van een initialisatie-expressie dat de initialisatie
uitdrukken wordt uitgevoerd bij elke iteratie van de en uitspraak. Dus het volgende:
verklaring zal nooit eindigen en zal een nooit eindigende stroom van waarden 10 weergeven:

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

o terug te keren; en terugkeer uitdrukking;
Eenvoudig terugkeer uitspraken kunnen worden gebruikt in komen te vervallen functies, en terugkeer uitdrukking
statements worden gebruikt in andere soorten functies. De functie hoofd- heeft retourtype
komen te vervallen en zo in hoofd- alleen duidelijk terugkeer verklaringen kunnen worden gebruikt. Standaard een ikmaken
de exit-waarde van het script is gelijk aan 0. Gebruik de ingebouwde functie afrit (zie hieronder) om te specificeren
een andere uitstapwaarde.

Be geadviseerd: het gedrag van niet-ongeldige functies die geen waarden retourneren, is niet gedefinieerd.

o breken
bladeren For en en verklaringen, die de voorwaarde van de verklaring overschrijven.

o voortzetten
Gaat verder met de volgende iteratie van a For or en verklaring.

o exit (uitdrukking)
Beëindigt de uitvoering van een ikmaken-script. De uitdrukking moet evalueren naar een int
waarde, die de exit-waarde van het script wordt.

VOORGEDEFINIEERD FUNCTIES


icmake biedt de volgende voorgedefinieerde functies, die overal in ikmaken
scripts. Het volgende overzicht is alfabetisch gerangschikt op functienaam.

o komen te vervallen arghead (string h)
Helperfunctie van exec () (zie ook hieronder bij exec ()): definieert de `argumentkop',
te gebruiken met exec (). Standaard is de `argumentkop' een lege string.

o komen te vervallen ruzie (snaar t)
Helperfunctie van exec () (zie ook hieronder bij exec ()): definieert de `argument tail',
te gebruiken met exec (). Standaard is de `argument tail' een lege string.

o int ascii(tekenreeks s)
Retourneert het eerste teken van s als een int; bijv., ascii("A") geeft 65 terug;

o snaar ascii(int i)
Retourneren i als een string, bijv. ascii(65) geeft de string terug "A";

o snaar change_base(tekenreeks bestand snaar nieuwe basis)
Wijzigt de basisnaam van filet, geeft de gewijzigde naam terug. bijv.
change_base("/pad/demo.im", "uit") Retourneren "/pad/uit.im";

o snaar verander_ext(tekenreeks bestand snaar nieuwere)
Wijzigt de extensie van filet, geeft de gewijzigde naam terug. bijv.
rss_changeExt("bron.cc", "O") Retourneren "bron.o";

o snaar verander_pad(tekenreeks bestand snaar nieuw pad)
Wijzigt de padspecificatie van filet, geeft de gewijzigde naam terug. bijv.
change_path("tmp/binair", "/ Usr / bin") Retourneren "/usr/bin/binair". Merk op dat de
/-separator wordt indien nodig ingevoegd.

o snaar chdir (tekenreeks) nieuwe map)
Verandert de werkdirectory van het script, retourneert de vorige map als een absoluut
pad.

Te gebruiken chdir(".") om de huidige werkdirectory te verkrijgen, chdir("") kan worden gebruikt
verkrijg de opstartwerkmap (deze functionaliteit is verbroken in releases)
vóór 7.00 uur, maar is nu operationeel). De functie beëindigt de
ikmaken-script indien gespecificeerd nieuwe dir bestaat niet.

o snaar chdir (int controleren, snaar nieuwe map)
Dezelfde functionaliteit als de vorige functie, maar door op te geven controleren as
P_NOCHECK. de functie beëindigt het script niet. Integendeel, het zal de teruggeven
huidige werkmap van het script.

o cmdhead(tekenreeks h)
Helperfunctie van exec () (zie ook hieronder bij exec ()): Definieert een `command head', to
worden gebruikt met exec (). Standaard is de `commandokop' een lege string.

o cmdtail(tekenreeks t)
Helperfunctie van exec () (zie ook hieronder bij exec ()): Definieert een `command tail', to
worden gebruikt met exec (). Standaard is de `command tail' een lege string.

o echo (in kiezen)
Regelt echo van aangeroepen programma's (en hun argumenten), specificeer UIT als echo
wordt niet gevraagd. Standaard echo(AAN) is gebruikt.

o snaar element(int inhoudsopgave, lijst (of draad) var)
Werkt identiek aan de indexoperator: raadpleeg de index ([]) operator in de
sectie OPERATOREN.

o lijst eval(reeks str)
Deze functie werkt op dezelfde manier als de backtick-operator. Het voorbeeld voorzien van
de backtick-operator had daarom ook zo kunnen worden geschreven:

printf(eval("ls")); // drukt de elementen in de huidige af
// map

o exec(tekenreeks cmd, ...)
Voert opdracht uit met argumenten. Elk argument wordt voorafgegaan door ruziemaker()'s
argument en achteraf gefixeerd door ruzie()'s betoog. Merk op dat er geen spaties zijn ingevoegd
tussen ruziemaker()'s inhoud, het juiste argument, en ruzie()'s betoog. Alle
dus gewijzigde argumenten worden aaneengeschakeld, deze keer gescheiden door enkele spaties, en
harte cmdhead()'s inhoud wordt ingevoegd tussen de opdracht en het eerste argument
(aan weerszijden begrensd door enkele spaties) en cmdstaart()'s inhoud is toegevoegd
aan de argumenten (opnieuw, gescheiden door een enkele spatie). PATH wordt gezocht om te lokaliseren
cmd. 0 wordt geretourneerd.

o exec(int) checkcmd, snaar cmd, ...)
Dezelfde functionaliteit als de vorige functie, maar door op te geven controleren as
NIET_GECONTROLEERD de functie beëindigt het script niet. Integendeel, het zal de teruggeven
de exit-status van het commando genoemd, of 0x7f00 als de opdracht niet is gevonden.

o execute(string) cmd, snaar cmdhd, snaar arghd, ..., snaar argtl, snaar cmdtl)
Hetzelfde als exec (), maar het commando head/tail en argument head/tail moeten worden gespecificeerd.

Het daadwerkelijk uitgevoerde commando begint met cmd, Gevolgd door cmdhd. Volgende is een serie
van argumenten volgt, elk omsloten door arghd en argtl. Het commando eindigt met
cmdtl. 0 wordt geretourneerd

o uitvoeren (in controleren, snaar cmd, snaar cmdhd, snaar arghd, ..., snaar argtl,
snaar cmdtl)
Dezelfde functionaliteit als de vorige functie, maar door op te geven controleren as
NIET_GECONTROLEERD de functie beëindigt het script niet. Integendeel, het zal de teruggeven
de exit-status van het commando genoemd, of 0x7f00 als de opdracht niet is gevonden.

o int bestaat(string het dossier)
Retourneert een waarde die niet nul is als filet bestaat, anders wordt 0 geretourneerd.

o lijst fgets(tekenreeks bestand lijst compensatie)
NOTITIE: in ikmaken versie 8.00.00 het prototype van deze functie is gewijzigd van
lijst fgets(tekenreeks bestand int compensatie) naar lijst fgets(tekenreeks bestand lijst compensatie).

De volgende regel gevonden bij de offset in compenseren wordt gelezen uit filet. passeren een
lege lijst naar fgets lezen filet vanaf het begin.

Het retourneert een lijst met als eerste element de inhoud van de gelezen regel
(zonder de \n lijnterminator), als het tweede element de terminator van de lijn `\n'
(indien aangetroffen), en als derde element de string OK als een lijn succesvol was
lezen, FAIL als het lezen uit het bestand is mislukt. Bij het lezen bij EOF is een lege lijst
teruggekeerd. De geretourneerde lijst kan aanvullende elementen bevatten, die intern zijn
door fgets bij het lezen van de volgende regel.

Om meerdere regels te lezen, begint u met het doorgeven van een lege lijst als krijgt' tweede argument.
Om volgende regels te lezen, geeft u de eerder geretourneerde lijst door aan: fgets's tweede
argument.

Hier is een voorbeeld dat laat zien hoe u een volledig bestand kunt lezen:

lijst ret;
terwijl (1)
{
ret = fgets("bestandsnaam", ret);
als (!ret)
te breken;
proces(ret[0], ret[1]);
}

o int fprintf(tekenreeks bestandsnaam, ...)
Voegt alle (door komma's gescheiden) argumenten toe aan het bestand bestandsnaam. Retourneert het aantal
gedrukte argumenten.

o int fprintf(tekenreeks bestandsnaam, snaar formaat, ...)
Voegt alle (door komma's gescheiden) argumenten toe aan het bestand bestandsnaam. Retourneert het aantal
gedrukte argumenten.

If formaat bevat tijdelijke aanduidingen %1 .. %n de uitvoer is opgemaakt (zie ook
strformaat). Merk op dat in dit geval het tellen van argumenten (ook) begint voorbij de
format string: het eerste argument dat volgt formaat wordt aangeduid als %1.

o snaar get_base(tekenreeks het dossier)
Retourneert de basisnaam van filet. De basisnaam is het bestand zonder het padvoorvoegsel
en zonder zijn extensie. De extensie is alle informatie vanaf de finale
punt in de bestandsnaam. Als er geen laatste punt wordt gevonden, is de bestandsnaam de basisnaam.
Bijv. de basisnaam van ab is gelijk aan a, de basisnaam van abc is gelijk aan ab, de basis
naam van abc is gelijk aan c.

o snaar haal ()
Retourneert de volgende ingedrukte toets als een tekenreeks (op `Enter' drukken is niet vereist).

o snaar haal_dext(tekenreeks het dossier)
Retourneert de extensie van filet, inclusief de scheidingspunt. De extensie is alles
informatie die begint bij de laatste punt van de bestandsnaam.

Als er geen laatste punt wordt gevonden, wordt een lege tekenreeks geretourneerd.

o lijst haalv(string envvar)
Retourneert de waarde van de omgevingsvariabele envvar in een lijst met twee elementen:

het eerste element geeft aan of de omgevingsvariabele is gedefinieerd (waarde
"1") of niet (waarde "0");
het tweede element geeft de waarde van de omgevingsvariabele aan.

Omgevingsvariabelen zijn van de vorm variabele=waarde, en indien gedefinieerd de lijst's
tweede element bevat waarde. Als de waarde leeg is, is de variabele gedefinieerd, maar
er is geen tekst aan verbonden.

o snaar get_ext(tekenreeks het dossier)
Retourneert de extensie van filet, behalve de scheidingspunt. De extensie is alles
informatie beginnend bij de laatste punt in de bestandsnaam.

Als er geen laatste punt wordt gevonden, wordt een lege tekenreeks geretourneerd.

o int getid()
Retourneert de proces-id van de icmake byte code-interpreter icm-exec.

o snaar krijgt ()
Retourneert de volgende regel die van het toetsenbord wordt gelezen als a snaar. De lijn die is ingevoerd op de
toetsenbord moet worden afgesloten met een `Enter'-toets, die niet is opgeslagen in de geretourneerde
string.

o snaar haal_pad(tekenreeks het dossier)
Retourneert het pad-voorvoegsel van filet. Het padvoorvoegsel is alle informatie tot (en
inclusief) het laatste mapscheidingsteken (dat is, afhankelijk van de bediening)
systeem, een forward- of backslash).

Als er geen pad wordt gevonden, wordt een lege tekenreeks geretourneerd.

o int listfind(lijst eerste, snaar str)
Retourneert de eerste index in lst waar de string str wordt gevonden, of -1 als lst niet
bevatten str.

o int luister(lijst) l)
Retourneert het aantal elementen in lijst.

o lijst listunion(lijst) ls, lijst rechts)
Retourneert een lijst met de vereniging van de elementen in lhs en rhs.

o lijst listunion(lijst) eerste, snaar str)
Retourneert een lijst met de vereniging van de elementen in lst en str.

o lijst makelist(tekenreeks masker)
Retourneert een lijst met alle bestanden die overeenkomen met maskeren. bijv., makelist("*.c") geeft een lijst terug
met alle bestanden die eindigen op .c.

o lijst maaklijst(type, snaar masker)
Hetzelfde als de vorige functie, maar het type directory-elementen kan zijn:
opgegeven als het eerste argument:

symbool betekenis
IS_ALL verkrijgt alle directory-vermeldingen
IS_DIR verkrijgt alle mappen, inclusief . en ..
IS_FILE een lijst met bestanden verkrijgen
IS_SUBDIR verkrijg alle submappen

Merk op dat het patroon * komt niet overeen met verborgen vermeldingen onder Unix-type bediening
systemen. Gebruik maken van .* daarom.

o lijst makelist(tekenreeks masker, nieuwer, snaar vergelijkbestand)
Retourneert een lijst met alle bestanden die overeenkomen met masker en die nieuwer zijn dan een opgegeven
vergelijk bestand. Operator jonger kan worden gebruikt in plaats van nieuwere. Merk op dat nieuwere en
jonger zijn operators, geen strings.

o lijst maaklijst([int = IS_FILE,] snaar masker, nieuwer, snaar vergelijkbestand)
Hetzelfde als de vorige functie, maar type dan: kan worden gespecificeerd als in lijst maaklijst(type,
snaar masker).

o makelist(tekenreeks masker, ouder, snaar vergelijkbestand)
Zie hierboven; retourneert een lijst met bestanden die ouder zijn dan het vergelijkbestand.

o maaklijst(type, snaar masker, ouder, snaar vergelijkbestand)
Hetzelfde als de vorige functie, maar type dan: kan worden gespecificeerd als in lijst maaklijst(type,
snaar masker).

o int afdrukken(...)
Toont alle (door komma's gescheiden) argumenten om te screenen (dwz de standaard uitvoerstroom).
Retourneert het aantal afgedrukte argumenten.

o int printf(tekenreeks formaat, ...)
Toont alle (door komma's gescheiden) argumenten om te screenen (dwz de standaard uitvoerstroom).
Retourneert het aantal afgedrukte argumenten (de formaat string telt als één argument).

If formaat bevat tijdelijke aanduidingen %1 .. %n de uitvoer is opgemaakt (zie ook
strformaat).

o int putenv(tekenreeks envvar)
Voegt envvar naar de huidige (ikmaken) omgeving Gebruik het formaat: "VAR=waarde".
Retouren 0.

o snaar formaat wijzigen (tekenreeks) str, int nieuwe lengte) Retourneert een kopie van string str, verkleind naar
nieuwe lengte karakters. Indien nieuwe lengte is negatief, dan wordt een lege string geretourneerd,
if nieuwe lengte overschrijdt str's lengte, dan worden de nieuw toegevoegde tekens geïnitialiseerd
naar lege ruimtes.

o int sizeof(lijst) l)
Verouderd: gebruik luister.

o int sizeoflist(lijst l)
Verouderd: gebruik luister.

o lijst stat (tekenreeks binnenkomst)
Retourneren staat(2) informatie over adresboekinvoer toegang als een lijst. De geretourneerde lijst
heeft twee elementen: element 0 is de attribuut waarde, element 1 bevat de grootte van
het bestand.

Attributen worden geretourneerd als bit-vlaggen, samengesteld uit de volgende vooraf gedefinieerde:
constanten:

S_IFCHR S_IFDIR S_IFREG
S_IREAD S_IWRITE S_IEXEC

Zie de staat(2) handleiding voor de betekenissen van deze constanten.

o lijst stat (controleren, snaar binnenkomst)
Hetzelfde als de vorige functie, maar door op te geven controleren as P_NOCHECK de functie
zal het script niet beëindigen. Integendeel, het keert terug staat(2) de retourwaarde.

o int strchr(tekenreeks str, snaar tekens)
Retourneert de eerste index in str waar een van de karakters in chars wordt gevonden, of -1
if str bevat geen van de tekens in chars.

o int strlen (string) str)
Retourneert het aantal tekens in str (de laatste 0 niet meegerekend).

o int strfind(tekenreeks hooiberg, snaar naald)
Retourindex in hooiberg WAAR naald wordt gevonden, of -1 als naald is niet ingesloten
in hooiberg.
Deze functie was Dit betekent dat we onszelf en onze geliefden praktisch vergiftigen. strstr() in versies vaardigheden 7.00.

o int strformat(tekenreeks formaat,...)
Retourneert een opgemaakte tekenreeks met tijdelijke aanduidingen %1 .. %2 om argumenten aan te pakken
volgende formaat.
Voorbeeld:

void main ()
{
int ik = 10;
intj = 20;
tekenreeks s1;
tekenreeks s2;
// traditionele aanpak:
s1 = (tekenreeks)i + " " + (tekenreeks)j + " " + (tekenreeks)i;
// met strformat:
s2 = strformat("%1 %2 %1", i, j);
printf("s1 = %1, s2 = %2\n", s1, s2);
}

o snaar strlwr(tekenreeks s)
Retourneert een duplicaat in kleine letters van s.

o lijst strtok (tekenreeks) str, snaar scheidingstekens)
Retourneert een lijst met alle subtekenreeksen van str gescheiden door een of meer
(opeenvolgende) tekens in afscheiders. bijv., strtok("hallo icmake's+wereld", " +")
geeft de lijst met de drie strings terug "Hallo", "ikmake's" en "wereld".

o snaar strupr(reeks s)
Retourneert een duplicaat in hoofdletters van s.

o snaar substr(tekenreeks tekst, int compensatie, int Graaf)
Retourneert een subtekenreeks van tekst, Vanaf compenseren, bestaande uit tellen karakters. Indien
compenseren groter is dan (of gelijk is aan) de grootte van de tekenreeks of als tellen <= 0, dan een lege string
wordt teruggestuurd. Indien compenseren kleiner is dan 0, dan wordt 0 gebruikt.

o int systeem(string opdracht)
Voert uit commando. De return-waarde geeft de exit-waarde van de uitgevoerde opdracht aan. De
snaar commando kan omleidings- en/of piping-tekens bevatten.

o int systeem (int controleren, snaar opdracht)
Dezelfde functionaliteit als de vorige functie, maar door op te geven controleren as
NIET_GECONTROLEERD de functie beëindigt het script niet. Integendeel, het zal de teruggeven
de exit-status van het commando genoemd, of 0x7f00 als de opdracht niet is gevonden.

o snaar trim (string) s)
Retourneert een kopie van s zonder voorloop- en volgspaties.

o snaar trimlinks(string str)
Retourneert een kopie van s zonder voorafgaande witruimten.

o snaar trim (string) s)
Retourneert een kopie van s zonder witte spaties.

GEBRUIKER BEPAALD FUNCTIES


komen te vervallen hoofd-

icmake scripts moeten voorzien zijn van een door de gebruiker gedefinieerde functie hoofd-. De functie hoofd- heeft
drie optionele parameters, die kunnen worden weggelaten uit de laatste (envp) naar de eerste
(argc), als in C. Het volledige prototype is (let op: komen te vervallen retourtype):

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

In hoofd(),

o argc staat voor het aantal elementen in argv;

o argv bevat de argumenten, waarbij element 0 gelijk is aan de naam van de .bim
file;

o envp bevat de `omgeving'-variabelen. De functie luister kan worden gebruikt
bepaal het aantal van zijn elementen. elementen in envp heb het formulier
variabele=waarde. Als alternatief kan de functie krijgenv kan worden gebruikt om een
specifieke omgevingsvariabele onmiddellijk. Voorbeeld:

void main (int argc, lijst argv)
{
lijst om te compileren;
int idx;

als (argc == 1)
gebruik(element(0, argv));

if (naarCompile = gewijzigd("*.cc"))
{
voor (idx = lengte(naarcompileren); idx--; )
compileren(element(idx, toCompile));

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

Alle globale variabelen in volgorde van hun definities hebben geïnitialiseerd hoofd- wordt gebeld door
ikmaken's runtime-ondersteuningssysteem om extra taken uit te voeren.

Daarnaast gedefinieerd gebruiker functies

Extra functies kunnen worden gedefinieerd. Eenmaal gedefinieerd, kunnen deze functies worden aangeroepen. Naar voren
verwijzen naar variabelen of functies wordt niet ondersteund, maar recursief aanroepen
functies is. Omdat functiedeclaraties niet worden ondersteund, is indirecte recursie niet:
ofwel ondersteund.

Door de gebruiker gedefinieerde functies moeten de volgende elementen hebben:

o Het retourtype van de functie, dat een van moet zijn leegte, int., snaar or lijst. Er
is geen standaardtype.

o De naam van de functie, bijv. compileren.

o Een parameterlijst die nul of meer door komma's gescheiden parameters definieert. De parameters
bestaan ​​zelf uit een typenaam (int., snaarof lijst) gevolgd door de
ID van de parameter. bijv. (snaar uitbestand, snaar source).

of A lichaam omgeven door een paar accolades ({ en }).

Functielichamen kunnen (optioneel geïnitialiseerde) variabeledefinities bevatten. Variabele
definities beginnen met een typenaam, gevolgd door een of meer komma's gescheiden (optioneel
geïnitialiseerde) variabele identifiers. Als een variabele niet expliciet is geïnitialiseerd, is het:
standaard geïnitialiseerd. Standaard een int variabele wordt geïnitialiseerd op 0, a snaar is
geïnitialiseerd naar een lege tekenreeks ("") En een lijst wordt geïnitialiseerd op een lijst met nul elementen.

Naast variabele definities kunnen lichamen nul of meer uitspraken bevatten (vgl.
sectie STROMEN CONTROL). Merk op dat variabelen kunnen worden gedefinieerd (en optioneel geïnitialiseerd)
overal binnen functies, en ook in als, For en en statements.

Het gedrag van ikmaken-scripts die niet-ongeldige functies gebruiken die geen waarden retourneren, zijn dat niet
gedefinieerd.

Gebruik icmake online met onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

  • 1
    DivFix + +
    DivFix + +
    DivFix++ is van jou AVI video reparatie en
    preview-software. Het is ontworpen voor reparatie
    en voorbeeldbestanden die worden gedownload
    van ed2k(emule), torrent, gnutella, ftp...
    DivFix++ downloaden
  • 2
    JBoss-gemeenschap
    JBoss-gemeenschap
    Door de gemeenschap aangestuurde projecten met de
    nieuwste innovaties voor cutting edge
    apps. Ons vlaggenschipproject JBoss AS is
    de toonaangevende Open Source,
    normconform...
    JBoss-community downloaden
  • 3
    Django Filer
    Django Filer
    django Filer is een bestandsbeheerprogramma
    applicatie voor django die maakt
    omgaan met bestanden en afbeeldingen een fluitje van een cent.
    django-filer is een bestandsbeheerprogramma
    aanvraag voor djang...
    Django filer downloaden
  • 4
    xCAT
    xCAT
    Toolkit voor extreem clusterbeheer.
    xCAT is een schaalbaar clusterbeheer
    en inrichtingstool die biedt
    hardwarecontrole, detectie en besturingssysteem
    schijf vol/di...
    XCAT downloaden
  • 5
    Psi
    Psi
    Psi is platformonafhankelijke krachtige XMPP
    client ontworpen voor ervaren gebruikers.
    Er zijn builds beschikbaar voor MS
    Windows, GNU/Linux en macOS.. Publiek:
    Eindgebruikers...
    Psi downloaden
  • 6
    Blobbyvolley 2
    Blobbyvolley 2
    Officiële voortzetting van de beroemde
    Blobby Volley 1.x arcadespel..
    Doelgroep: eindgebruikers/desktop. Gebruiker
    interface: OpenGL, SDL. Programmering
    Taal: C++, Lua. C...
    Blobbyvolley 2 downloaden
  • Meer "

Linux-commando's

Ad