İngilizceFransızcaİspanyolca

Sunucuları çalıştırın | Ubuntu > | Fedora > |


OnWorks favicon'u

icmake - Bulutta Çevrimiçi

Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü üzerinden OnWorks ücretsiz barındırma sağlayıcısında icmake çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen icmake komutudur.

PROGRAM:

ADI


icmake - Bir program bakımı (yapmak) kullanarak yardımcı program C- gramer gibi

SİNOPSİS


icmake [seçenekler] kaynak[.im] [hedef[.bim]] [-- [args]]

icmun bimfile

TANIM


icmake(1) alternatif olarak kullanılabilir yapmak(1). Standart çalışma modunda,
aşağıdaki programları çağırır:

o icm-pp icmake dosyasını önceden işlemek için

o icm-comp bayt kodunu derlemek için icmake s

o icm-exec bayt kod dosyasını yürütmek için

icmake programcıların bir programlama dili kullanmasına izin verir (iyi bilinenlere yakından benzeyen
C-programlama dili) (karmaşık) programa dahil olan eylemleri tanımlamak için
bakım. Bunun için, icmake çeşitli özel operatörlerin yanı sıra bir dizi destek sunar
program bakımında yararlı olduğu kanıtlanmış işlevler.

Program icmun(1) derlenmiş bayt kodu (.bim) dosyasını parçalarına ayırmak için kullanılabilir. Icmun
öncelikle örnekleme, eğitim ve hata ayıklama için kullanılır.

Geleneksel make-utilities, başlık dosyaları değiştirildikten sonra kaynakları yeniden derler. İçinde
bağlamı C + + program geliştirme, bir programa yeni bir üye eklemek genellikle kötü bir fikirdir.
class normalde sınıfın kaynaklarını yeniden derlemenizi gerektirmez. Sınıfı işlemek için
bağımlılıklar icmbuld(1) denetleyebilir SINIFLAR bağımlılıkları tanımlamak için kullanılabilecek dosyalar
sınıflar arasında. Varsayılan olarak, sınıf bağımlılıkları yorumlanmaz. Bakın icmconf(7)
Daha fazla ayrıntı için kılavuz sayfası.

SEÇENEKLER


icmake aşağıdaki dosyaları ve seçenekleri kullanır:

o kaynak: icmake komut dosyası kaynak dosyası (varsayılan uzantı: .ben).

o dest: ikili icmake komut dosyası (varsayılan: `kaynak'.bim, `.bim dosyası' olarak adlandırılır
altında).

o --: icmake bağımsız değişken ayırıcı icmake geçirilen argümanlardan argümanlar
.bim dosyasına() args: aşağıdaki argümanlar -- .bim dosyasına iletilir
olduğu gibi ve şuradan edinilebilir: liste bağımsız değişken olarak tanımlanan parametre icmake
Kodlar ana işlevin ikinci parametresi (aşağıdaki bölüme bakın) KULLANICI TANIMLI
FONKSİYONLAR). Bazı seçenekler için (aşağıya bakın) -- ayırıcı gerekli değildir.

icmake aşağıda açıklanan çeşitli seçenekleri destekler. NS -h seçenek diğerlerini geçersiz kılar
seçenekler, -a seçeneği dışındaki tüm seçenekleri geçersiz kılar. -h. Kalan eylemin
seçenekler (-B, -C, , -e -ben, -p ve -t) yalnızca biri belirtilebilir:

o -a
hakkında bilgi göster icmaketarafından reddedildi -h;

o -b
durdurulan: bunun yerine -e seçeneğini kullanın;

o -c
the icmake kaynak dosya derlenir ve bir .bim dosyası oluşturulur;

o -e
yürütmek icmake .bim dosyası olarak verilen icmake'ın ilk dosya argümanı. herhangi bir ek
argümanlar .bim dosyasına olduğu gibi iletilir ve -- belirtilmemelidir;

o -F
tarafından gerçekleştirilecek tüm eylemlerin yanı sıra dosya adları ve bayraklar
icmake standart çıktı akışında gösterilir;

o -h
kullanım bilgilerini sağlayın ve sonlandırın icmake;

o -i
ilk argüman şudur icmake kaynak dosya, varsayılan ikili dosya
gerekirse inşa edilir. Tüm ek bağımsız değişkenler .bim dosyasına iletilir
olduğu gibi ve -- belirtilmemelidir;

o -p
the icmake kaynak dosya yalnızca önceden işlenir ve önceden işlenmiş dosya yazılır
için icmake'nin ikinci dosya argümanı (varsayılan olarak "kaynak".pim);

o -q
yoksayıldı, gelecekte kaldırılacak icmake versiyon;

o -t
aşağıdaki argüman -t kaldırılan geçici bir .bim dosyasının adıdır.
sonra icmakearaması. Ne zaman . geçici .bim dosyasının adı olarak belirtilir
ardından varsayılan geçici dizin, ardından icmake' işlem kimliği, ardından
.bim kullanıldı.

Geçici .bim dosyasının adının ardından icmake kaynak komut dosyası
belirtilmelidir. Tüm ek bağımsız değişkenler .bim dosyasına olduğu gibi iletilir ve
-- belirtilmemelidir; Kaynak komut dosyasının yürütülebilir bayrağını ayarladıktan sonra
(chmod +x senaryo) ve buna şöyle bir başlangıç ​​satırı sağlamak:

#!/usr/bin/icmake -t.

the icmake komut dosyası doğrudan çağrılabilir:

komut dosyası arg1 arg2

bu durumda icmake senaryo "senaryo" alınırken yürütülür
argümanlar senaryo arg1 arg2.

o -T
bu seçenek, depolamak için kullanılan bir dizinin adıyla sağlanmalıdır.
geçici dosyalar. Örneğin, bir derleme yaparken icmake komut dosyası, çıktısı icmake'S
önişlemci, çıkışta kaldırılan geçici bir dosyadır. Varsayılan olarak / Tmp kullanıldı,
olmadıkça / Tmp yazılabilir bir dizin değil, bu durumda mevcut kullanıcının $ HOME
dizin kullanılır. Örtülü geçici dosya adları her zaman işlem kimliğiyle başlar.
Mevcut icmake proses.

o -v
ekran icmakesürüm numarası ve bitiş icmaketarafından reddedildi -h

Icmun:

bimfile: ikili icmake Komut dosyaları.

ÖN İŞLEMCİ YÖNERGELER


Aşağıdaki önişlemci yönergeleri mevcuttur:

o yorum:
standart C yorum (hepsi arasında /* ve */) ve ayrıca yorumdan satır sonuna kadar (tümü
aşağıdaki satır içeriği //) göz ardı edilir.

o Kabuk başlatma: Programın ilk satırı icmake-script ile başlayabilir #!yol, Burada
yol mutlak konumunu tanımlar. icmake programı. Senaryo yaparak
yürütülebilir, açıkça çağrılmadan çağrılabilir icmake.

Örneğin, bir (yürütülebilir) icmakefile 'icm'nin ilk satırı (uzantısız)
içeren

#!/usr/bin/icmake -i

sonra icm komut olarak verilebilir, böylece yürütülür

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

Seçenek olarak ise,

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

yürütülmesiyle sonuçlanacak şekilde kullanılabilir.

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

Bu durumda ikili dosya çıkışta kaldırılır.

o #Dahil etmek "dosya adı"
Dosya Dosya direktifin bulunduğu yere dahildir

o #Dahil etmek
Dosya Dosya bulunduğu yere dahildir #Dahil etmek direktif; Dosya
tarafından belirtilen iki nokta üst üste ayrılmış dizinlerde aranır. IM çevre
değişken. ilk oluşumu Dosya tarafından belirtilen dizinlerde IM
ortam değişkeni kullanılır.

o #tanımlamak tanımlayıcı [tanım]
metin tanımlayıcı ile değiştirilecek tanım. Tanım şunları içerebilir:
kullanarak, önceden tanımlanmış tanımlayıcılara referanslar ${tanımlayıcı} biçim. Eğer
${tanımlayıcı} (henüz) tanımlanmadı, metin ${tanımlayıcı} anlamıyla tutulur.
En fazla 100 sonsuz özyinelemeyi önlemek için ${tanımlayıcı} değiştirmelerine izin verilir.

Bir satırdaki son karakter bir satır ise tanımlamalar bir sonraki satırda devam eder.
ters eğik çizgi (\). (tanıma dahil değildir). önişlemci
çift ​​tırnaklı dizeleri birleştirir ve çift tırnaklı dizeler birden fazla yayılmayabilir
çizgiler. Tanımlarda birden çok boşluk (çift tırnaklı dizelerin dışında)
tek bir boş alana sözleşmeli.

Aşağıdaki tanım #define's tanımlayıcı isteğe bağlıdır. atlanırsa,
makro tanımlanmıştır, bu nedenle kullanılabilir #if(n)def direktifler (aşağıya bakınız), ancak
içindeki herhangi bir metinle değiştirilmez icmake kod ifadeleri.

o #ifdef tanımlayıcı
Eğer tanımlayıcı makro bir sonraki kod bloğunu tanımladı (eşleşene kadar #else
or #endif yönergesi okundu) bayt derlendi. Aksi takdirde, kod bloğu
görmezden geldi.

o #ifndef tanımlayıcı
Eğer tanımlayıcı makro değil sonraki kod bloğunu tanımladı (eşleşene kadar
#else or #endif yönergesi algılandı) bayt olarak derlendi. Aksi takdirde, blok
kod yoksayılır.

o #else
sonlandırır #ifdef ve #ifndef hakkındaki kabul kararını tersine çeviren direktif
aşağıdaki kod. Sadece bir #else direktif ile ilişkilendirilebilir. #if(n)def
direktifler.

o #endif
Eşleşmeden başlayarak önişlemci bloğunu sonlandırır #ifdef, #ifndef or #else
direktif. NS #endif dizin ve eşleşmesi #if(n)def direktif olmalı
aynı dosyada belirtilmiştir.

o #undef tanımlayıcı
Kaldır tanımlayıcı tanımlanmış semboller kümesinden. Bu etkilemez
içinde önceden tanımlanmış herhangi bir sembolün belirtimi tanımlayıcı tanım
kullanıldı. Eğer tanımlayıcı tanımlanmadı bir uyarı verilir.

VERİ TÜRLERİ


icmake şu veri türlerini destekler:

o ASCII karakter sabit
ASCII karakter sabitleri, tek veya çift karakterle çevrili bir karakterden oluşur.
alıntılar. Tek karakterler (örn. 'a') karakterin kendisini temsil eder. Standart
kaçış dizileri (örn. '\n') desteklenir ve dönüştürülen standartlarını temsil eder
değer (örn. '\n' ascii değeri 10'u (ondalık) temsil eder). Standart dışı kaçış
diziler (örn. '\x') kaçış karakterinden sonraki ascii karakterini temsil eder
(yani '\x' eşittir 'x'). Üç sekizlik basamaktan oluşan kaçış dizileri,
modulo 256 sekizlik değerine karşılık gelen ascii karakteri (örn. '\123').
Bir x ve ardından iki onaltılık basamaktan oluşan kaçış dizileri
onaltılık değere karşılık gelen ascii karakteri (örn. '\xa4').

o int
arasında değişen integral değerler -0x8000 içinden 0x7fff. int sabitler olabilir
ondalık sayılar (1'den 9'a kadar olan rakamlardan başlayarak), sekizli sayılar olarak belirtilir
(0 ile başlar, ardından bir veya daha fazla sekizlik basamak gelir) onaltılık sayılar
(0x ile başlar, ardından bir veya daha fazla onaltılık basamak gelir) veya ASCII
karakter sabitleri.

o dizi
Metin değişkenleri. Dize sabitleri çift tırnak ile sınırlandırılır. Çoklu dize
sabitler birleştirilebilir, ancak tek bir dize sabiti birden fazla alana yayılamaz
çizgiler. Yalnızca boşlukla ayrılmış dize sabitleri (yani boşluklar, yeni satırlar,
yorum) birleştirilir ve tek bir dize sabitini temsil eder. belirtmek için
bir dize sabitinde satır sonu \n kaçış dizisi.

Çift tırnak içine alınmış ASCII karakter sabitleri de kullanılabilir.
işlenenlerden biri bir ise aritmetik ifadeler int. Tek karakter
dizi sabiti şart bir sabit olmak ve bir olamaz dizi değişkeni.

Benzer şekilde, tek tırnak içine alınmış ASCII karakter sabitleri de kullanılabilir.
dize işleneninin beklendiği durumlar.

o liste
Bireysel olarak erişilebilen bir dizi veri yapısı dizi değerler. Ne zaman
bir liste elemanlar içerir, ilk elemanı 0 indeksi ile gösterilir.

o geçersiz
İşlevin bir değer döndürmediğini belirtmek için işlev tanımlarıyla birlikte kullanılır.
değeri.

Değişkenler, global düzeyde ve ayrıca herhangi bir yerel düzeyde içeride tanımlanabilir.
fonksiyonlar. Fonksiyonların içinde tanımlandığında, standart C kapsam ve görünürlük kuralları
uygulamak. Örneğin, yerel değişkenler yalnızca kendi içlerinde veya daha derin iç içe geçmiş değişkenlerde kullanılabilir.
bloklar, görünürlükleri aynı şekilde tanımlanarak daha derin iç içe bloklarda maskelenir.
daha derinden iç içe geçmiş blokların içinde adlandırılmış değişken. Değişkenler güçlü bir şekilde yazılır ve
tipi olamaz geçersiz.

Değişkenler tanımlandıklarında başlatılabilirler. Başlatmalar ifadelerdir, yani
önceden veya kullanıcı tanımlı işlevleri, sabit değerleri ve değişkenlerin değerlerini kullanabilir.
tanım noktasında görülebilir.

ÖN TANIMLI SABİTLER


Aşağıdaki sabitler tarafından önceden tanımlanmıştır icmake. hepsi sabit int değerler:

─────────────────────────────────
amaçlanan sembol değeri
─────────────────────────────────
O_ALL 8 makelist
O_DIR 2 makelist
O_FILE 1 makelist
O_SUBDIR 4 makelist
─────────────────────────────────
KAPALI 0 yankı
AÇIK 1 yankı
─────────────────────────────────
P_CHECK 0 sistem çağrısı
P_NOCHECK 1 sistem çağrısı
─────────────────────────────────
S_IEXEC 32 durumu
S_IFCHR 1 istatistik
S_IFDIR 2 durumu
S_IFREG 4 durumu
S_IREAD 8 durumu
S_IWRITE 16 durumu
─────────────────────────────────

Aşağıdaki sabitler mimariye bağlıdır:

──────────────────────────────────────────── ───────────
platformda tanımlandığında sembol 1, aksi takdirde 0
──────────────────────────────────────────── ───────────
unix Unix, genellikle GNU'nun gcc derleyicisi ile
UNIX alternatif olarak mevcut olabilir
Linux çalıştıran linux x86 (genellikle gcc ile)
LINUX alternatif olarak mevcut olabilir
M_SYSV, SCO/Unix çalıştıran M_UNIX x86
_POSIX _SOURCE Unix, Posix uyumlu derleyici ile
__hpux HP-UX, yerel HP derleyicisi ile
──────────────────────────────────────────── ───────────

OPERATÖRLERİ


int-yazılı işlenen(ler):

Tümü C operatörler mevcuttur (işaretçi operatörleri hariç, icmake desteklemez
işaretçiler). Onlar gibi çalışırlar C-programlama dili karşılıkları.

dizeyle yazılmış işlenen(ler):

İçin dizi tür değişkenleri ve/veya sabitler aşağıdaki operatörler kullanılabilir (a ve b
temsil etmek dizi değişkenler veya sabitler):

o a + b: yenisini döndürür dizi birleştirilmesini içeren değer dizi değerlerimiz a
ve b. Bunu not et dizi sabitler doğrudan birleştirilebilir (kullanmadan +
operatörü), örneğin aşağıdaki iki satırın her ikisi de dizeyi tanımlar "Merhaba dünya ":

"Selam Dünya"
"merhaba" + "dünya"

o a += b: a a olmalıdır dizi değişken olan, dizi değişken veya değer b is
eklenmiş.

o dizi karşılaştırmaları: operatörler == != <= >= < > != ve == uygulanabilir dizi
değerler veya değişkenler, karşılaştırma başarılı olursa 1, aksi takdirde 0 döndürür.
Karşılaştırma büyük/küçük harfe duyarlıdır ve tanımlandığı şekilde sıralamayı veya karakterleri takip eder
içinde ASCII karakter seti.

o !a: boole ! (değil) operatörü, eğer dizi a boş, aksi takdirde 0
iade.

o a küçük b, a daha yeni b: dosya ise 1 döndürür a dosyadan daha yeni b. Örneğin,
"kaynak.cc" daha yeni "kaynak.o". Dosyalar a ve b var olmak zorunda değil: ikisi de yoksa
var 0 döndürülür; Eğer b mevcut değil, 1 döndürülür; Eğer a yok 0
iade; eşit derecede eskiyse 0 döndürülür. (NS var() önceden tanımlanmış işlev
(aşağıya bakınız, bölüm ÖN TANIMLI FONKSİYONLAR) olup olmadığını açıkça test etmek için kullanılabilir.
dosya var).

o a büyük b: dosya ise 1'e döner a dosyadan daha eski b. Örneğin, "libprog.a" büyük
"kaynak.o". Dosyalar a ve b var olmak zorunda değil: ikisi de yoksa 0
iade; Eğer a mevcut değil, 1 döndürülür; Eğer b yok 0 döndürülür; Eğer
eşit derecede eski 0 döndürülür.

o []: dizin operatörü, bir dize değişkeni veya sabitinden bir karakter alır: o
olarak bir dize döndürür değer. Bu nedenle, aşağıdaki ifade OK derler:

// str1 ve str2'nin dizeler olduğunu varsayalım
str1 = str2[3];

ancak aşağıdaki ifade derlenmeyecek:

str2[3] = "a";

Geçersiz bir dizin değeri sağlanırsa boş bir dize döndürülür.

o "backtick" operatörü (`dize cmd')
İki backticks arasına yerleştirilen bir dize, tarafından yürütülür. popen(3) işlevi. NS
dize bağımsız değişkeninde depolanan komut tarafından oluşturulan standart çıktı
liste olarak döndü. Boş bir liste, komutun yürütülemediğini gösterir.
Yürütülebilir ancak herhangi bir çıktı üretmeyen bir komut bir liste döndürür
bir boş eleman içerir. Komutun standart hata akışı çıktısı değil
backtick operatörü tarafından toplanır. Ancak, standart kabuk yeniden yönlendirmesi
standart hata akışının çıktısını toplamak için kullanılır. Örnek:

printf(`"ls"`); // içindeki öğeleri yazdırır
// geçerli dizin

önceden tanımlanmış işlev değerlendirme(dize cmd) tam olarak backtick gibi davranır
operatör: bunlar eş anlamlıdır.

liste tipi işlenen(ler):

İçin liste tür değişkenleri ve/veya değerleri aşağıdaki operatörler mevcuttur:

o a + b: yenisini döndürür liste birleştirilmesini içeren değer liste değerlerimiz a ve
b. Bu, değil set işlemi: bir öğe her ikisinde de görünürse a ve b, yapacaklar
sonuçtaki listede iki kez görünür (set-ekleme yerleşik tarafından sağlanır
işlev liste birliği).

o a - b: yenisini döndürür liste içindeki öğeleri içeren değer a mevcut olmayan
in b. Bu is set-fark işlemi: döndürülen liste tüm öğeleri içerir
in a unsurları olmayan b.

o a += b: içindeki elemanlar b elemanlarına eklenir a, olması gereken bir liste
değişken. Bu değil ayarlanmış bir işlem.

o a -= b: içindeki elemanlar b içindeki unsurlardan çıkarılır. a, olması gereken bir liste
değişken. Bu is set işlemi: tüm öğeleri a içinde bulunan b vardır
dan silindi a.

o eşitlik karşılaştırmalarını listele: operatörler != ve == uygulanabilir liste değerler veya
değişkenler. Şebeke == her iki listede de eleman-eleman aynıysa 1 döndürür
öğeler, aksi takdirde 0 döndürülür. Şebeke != sonucunu tersine çevirir ==.

o !a: boole ! operatör 1 döndürürse liste a boş, aksi takdirde 0
iade.

o []: dizin operatörü, bir liste değişkeninden bir liste öğesi alır: bir
olarak dize değer. Bu nedenle, aşağıdaki ifade OK derler:

// lst'nin bir liste olduğunu varsayalım, str bir dizedir
str = lst[3];

ancak aşağıdaki ifade derlenmeyecek:

lst[3] = str;

Geçersiz bir dizin değeri sağlanırsa boş bir dize döndürülür.

Döküm:

Tip-casts standart kullanılarak gerçekleştirilebilir C döküm operatörü:

o Dizeleri ints'e ve tam tersi ((int)"123", (dize)55)

o Listelerdeki dizeler (liste lst = (liste)"merhaba")

AKIŞI KONTROL


icmake aşağıdaki alt kümesini sunar C' açıklamaları. olarak kullanılabilirler C
Programlama dili.

o ifade ;
Düz ifade ifadesi;

o Bileşik ifade
Herhangi bir türdeki değişkenler, herhangi bir bileşik içinde herhangi bir yerde tanımlanabilir ve başlatılabilir.
Beyan. görünürlük Bir değişkenin tanımı tanım noktasında başlar.

o if (şart) ifade
Koşul içinde bir değişken tanımlanabilir ve başlatılabilir. Örneğin,

if (string str = getText())
süreç(str);

Bu örnekte, süreç eğer çağrılmaz getText () boş bir dize döndürür. NS
değişken str öncesinde veya sonrasında yoktur. if ifadesi.

o if (şart) ifade başka ifade
Önceki ifadede olduğu gibi, koşul içinde bir değişken tanımlanabilir ve
başlatıldı.

o için (içinde; şart; artış) ifade
Değişkenler (tek tipte) şurada başlatılabilir (ve isteğe bağlı olarak tanımlanabilir).
init Bölüm. init, koşul ve artım bölümler boş kalabilir. NS
boş koşul bölümü `her zaman gerçek'.

o süre (şart) ifade
Koşul içinde bir değişken tanımlanabilir ve başlatılabilir.
tamamlayıcı do ... süre() beyan mevcut değildir. Tanımlayan bir
değişken, bir başlatma ifadesi kullanmak, başlatmanın
ifade her yinelemede yürütülür süre Beyan. Yani aşağıdakiler
ifadesi asla bitmeyecek ve hiç bitmeyen bir değer akışı 10 gösterecektir:

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

o dönmek;, ve dönüş ifade;
Sade dönüş ifadelerde kullanılabilir geçersiz fonksiyonlar ve dönüş ifade
deyimler başka tür işlevlerde kullanılır. İşlev ana dönüş türü var
geçersiz ve böylece ana sadece sade dönüş ifadeler kullanılabilir. Varsayılan olarak bir icmake
betiğin çıkış değeri 0'a eşittir. Yerleşik işlevi kullanın çıkış (aşağıya bakınız) belirtmek için
başka herhangi bir çıkış değeri.

Be tavsiye edilen: geçersiz olmayan işlevlerin değer döndürmeyen davranışı tanımsızdır.

o kırılma
Yapraklar için ve süre ifadenin koşulunu geçersiz kılan ifadeler.

o devam etmek
Bir sonraki yineleme ile devam eder için or süre ifadesi.

o çıkış(ifade)
Bir işlemin yürütülmesini sonlandırır icmake-senaryo. NS ifade değerlendirmek gerekir int
betiğin çıkış değeri olan değer.

ÖN TANIMLI FONKSİYONLAR


icmake herhangi bir yerde kullanılabilen aşağıdaki önceden tanımlanmış işlevleri sunar: icmake
Kodlar. Aşağıdaki genel bakış, işlev adına göre alfabetik olarak sıralanmıştır.

o geçersiz arghead(dize h)
yardımcı işlevi yürüt() (ayrıca aşağıdaki adrese bakın: yürüt()): 'argüman başlığını' tanımlar,
ile kullanılmak yürüt(). Varsayılan olarak, "argüman başlığı" boş bir dizedir.

o geçersiz argtail (sicim t)
yardımcı işlevi yürüt() (ayrıca aşağıdaki adrese bakın: yürüt()): 'argüman kuyruğunu' tanımlar,
ile kullanılmak yürüt(). Varsayılan olarak, "argüman kuyruğu" boş bir dizedir.

o int ascii(dize s)
İlk karakterini döndürür s int olarak; Örneğin, asci("A") 65 döndürür;

o dizi ascii(int i)
İade i bir dize olarak, örn. ascii(65) dizeyi döndürür "A";

o dizi change_base(dize dosyası, dizi yeni taban)
Temel adını değiştirir dosya, değiştirilen adı döndürür. Örneğin,
change_base("/path/demo.im", "dışarı") İade "/path/out.im";

o dizi change_ext(dize dosyası, dizi yeni)
uzantısını değiştirir dosya, değiştirilen adı döndürür. Örneğin,
rss_changeExt("kaynak.cc", "Ö") İade "kaynak.o";

o dizi change_path(dize dosyası, dizi yeni yol)
yol belirtimini değiştirir dosya, değiştirilen adı döndürür. Örneğin,
change_path("tmp/ikili", "/ Usr / bin") İade "/usr/bin/ikili". Unutmayın ki
/-Gerekirse ayırıcı eklenir.

o dizi chdir(dize yenidir)
Komut dosyasının çalışma dizinini değiştirir, önceki dizini mutlak olarak döndürür
yolu.

kullanım chdir(".") geçerli çalışma dizinini elde etmek için, chdir("") için kullanılabilir
başlangıç ​​çalışma dizinini edinin (bu işlev sürümlerde bozulmuştur)
7.00'den önce, ancak şimdi çalışır durumda). fonksiyon sonlandırır
icmake-belirtilmişse betik yenidir yok.

o dizi chdir(int kontrol etme, dizi yenidir)
Önceki işlevle aynı işlevsellik, ancak denetleme as
P_NOCHECK. işlev betiği sonlandırmaz. Aksine, geri dönecek
betiğin geçerli çalışma dizini.

o cmdhead(dize h)
yardımcı işlevi yürüt() (ayrıca aşağıdaki adrese bakın: yürüt()): Bir 'komut başlığı' tanımlar,
ile kullanılmak yürüt(). Varsayılan olarak, "komut başlığı" boş bir dizedir.

o cmdtail(dize t)
yardımcı işlevi yürüt() (ayrıca aşağıdaki adrese bakın: yürüt()): Bir "komut kuyruğu" tanımlar,
ile kullanılmak yürüt(). Varsayılan olarak, "komut kuyruğu" boş bir dizedir.

o yankı(int tercih)
Çağrılan programların (ve argümanlarının) yankılanmasını kontrol eder, belirtin KAPALI yankılanıyorsa
talep edilmez. Varsayılan olarak yankı(AÇIK) kullanıldı.

o dizi eleman(int indeksi, liste (Ya da sicim) var)
İndeks operatörüyle aynı davranır: indekse bakın ([]) operatörü
Bölüm OPERATÖRLERİ.

o liste değerlendirme(dize str)
Bu işlev, geri tepme operatörüyle aynı şekilde hareket eder. Verilen örnek
bu nedenle backtick operatörü şu şekilde de yazılabilirdi:

printf(eval("ls")); // akımdaki elemanları yazdırır
// dizin

o exec(dize cmd, ...)
Argümanlarla komutu yürütür. Her argümanın önüne şu şekilde eklenecektir: arghead()'S
argüman ve tarafından sonradan eklenmiş bağımsız değişken()' argümanı. Boşluk eklenmediğini unutmayın
arasında arghead()içeriği, uygun argüman ve bağımsız değişken()' argümanı. Tüm
böylece değiştirilmiş argümanlar birleştirilir, bu sefer tek boşluklarla ayrılır ve
sonra cmdhead()'nin içeriği komut ile ilk argüman arasına eklenir
(her iki tarafta tek boşluklarla ayrılmış) ve cmdtail()içeriği ektedir
argümanlara (tek bir boşlukla ayrılmış olarak). PATH bulmak için aranır
cmd. 0 döndürülür.

o exec(int kontrol cmd, dizi cmd, ...)
Önceki işlevle aynı işlevsellik, ancak denetleme as
KONTROL EDİLMEMİŞ işlev betiği sonlandırmaz. Aksine, geri dönecek
çağrılan komutun çıkış durumu veya 0x7f00 komut bulunamadıysa.

o yürütmek (dize cmd, dizi cmdhd, dizi arghd, ..., dizi argtl, dizi cmdtl)
Aynısı yürüt(), ancak head/tail komutu ve head/tail argümanı belirtilmelidir.

Gerçekte yürütülen komut şununla başlar: cmd, Ardından cmdhd. Sıradaki bir dizi
argümanların her biri aşağıdakilerle çevrilidir: arghd ve argtl. komut ile sonlanır
cmdtl. 0 döndürülür

o yürütmek(int kontrol etme, dizi cmd, dizi cmdhd, dizi arghd, ..., dizi argtl,
dizi cmdtl)
Önceki işlevle aynı işlevsellik, ancak denetleme as
KONTROL EDİLMEMİŞ işlev betiği sonlandırmaz. Aksine, geri dönecek
çağrılan komutun çıkış durumu veya 0x7f00 komut bulunamadıysa.

o int var(dize dosya)
Aşağıdaki durumlarda sıfır olmayan bir değer döndürür: dosya var, aksi takdirde 0 döndürülür.

o liste fgets(dize dosyası, liste telafi etmek)
NOT: in icmake sürüm 8.00.00 bu işlevin prototipi değiştirildi
liste fgets(dize dosyası, int telafi etmek) için liste fgets(dize dosyası, liste telafi etmek).

İçerdiği ofsette bulunan bir sonraki satır ofset şuradan okunur dosya. geçmek
boş liste fget'lar okumak dosya başından beri.

İlk öğesi olarak okuma satırının içeriğini içeren bir liste döndürür.
(olmadan \n satır sonlandırıcı), ikinci öğesi olarak satırın sonlandırıcı `\n'
(karşılaşılırsa) ve üçüncü öğesi olarak dize OK bir satır başarılı olduysa
okuma, FAIL dosyadan okuma başarısız olursa. EOF'de okurken boş bir liste
iade. Döndürülen liste, dahili olarak ek öğeler içerebilir.
kullandığı fget'lar sonraki satırı okurken.

Birden çok satırı okumak için boş bir listeyi şu şekilde ileterek başlayın: alır ikinci argüman.
Sonraki satırları okumak için önceden döndürülen listeyi fget'lar ikinci
argüman.

Tam bir dosyanın nasıl okunacağını gösteren bir örnek:

liste ret;
while (1)
{
ret = fgets("dosya adı", ret);
eğer (!ret)
break;
process(ret[0], ret[1]);
}

o int fprintf(dize dosya adı, ...)
Tüm (virgülle ayrılmış) bağımsız değişkenleri dosyaya ekler Dosya. sayısını döndürür
basılı argümanlar

o int fprintf(dize dosya adı, dizi biçim, ...)
Tüm (virgülle ayrılmış) bağımsız değişkenleri dosyaya ekler Dosya. sayısını döndürür
basılı argümanlar

If biçim %1 yer tutucuları içerir .. %n çıktı biçimlendirilir (ayrıca bkz.
strformat). Bu durumda argüman sayımının (ayrıca) aşağıdakilerin ötesinde başladığını unutmayın.
biçim dizesi: aşağıdaki ilk argüman biçim olarak adlandırılır %1.

o dizi get_base(dize dosya)
Temel adını döndürür dosya. Temel ad, yol öneki olmayan dosyadır
ve uzantısı olmadan. Uzantı, finalde başlayan tüm bilgilerdir.
dosya adındaki nokta. Son nokta bulunamazsa, dosya adı temel addır.
Örneğin, temel adı ab eşittir a, temel adı ABC eşittir ab, baz
adına ABC eşittir c.

o dizi getir()
Bir sonraki basılan tuşu bir dizge olarak döndürür (`Enter'a basmak gerekli değildir).

o dizi get_dext(dize dosya)
uzantısını döndürür dosya, ayırma noktası dahil. Uzantı hepsi
dosya adının son noktasından başlayan bilgiler.

Son nokta bulunamazsa boş bir dize döndürülür.

o liste getenv(dize ortam)
Ortam değişkeninin değerini döndürür envvar iki öğe içeren bir listede:

ilk öğe, ortam değişkeninin tanımlanıp tanımlanmadığını gösterir (değer
"1") veya değil (değer "0");
ikinci öğe, ortam değişkeninin değerini gösterir.

Çevre değişkenleri şu şekildedir: değişken=değer, ve tanımlanmışsa listenin
ikinci eleman içerir değer. Değer boşsa değişken tanımlanır, ancak
onunla ilişkili bir metin yok.

o dizi get_ext(dize dosya)
uzantısını döndürür dosya, ayırma noktası hariç. Uzantı hepsi
dosya adındaki son noktadan başlayan bilgiler.

Son nokta bulunamazsa boş bir dize döndürülür.

o int getpid()
icmake bayt kodu yorumlayıcısının işlem kimliğini döndürür icm-exec.

o dizi alır ()
Klavyeden okunan bir sonraki satırı a olarak döndürür. dizi. Girilen satır
klavye, döndürülen dosyada saklanmayan bir 'Enter' tuşu ile sonlandırılmalıdır.
dize.

o dizi get_path(dize dosya)
yolunun önekini döndürür dosya. Yol öneki, (ve
dahil) son dizin ayırıcı (işletim sistemine bağlı olarak
sistem, bir ileri veya ters eğik çizgi).

Yol bulunamazsa, boş bir dize döndürülür.

o int liste bul(liste lst, dizi str)
içindeki ilk dizini döndürür lst dize nerede str bulunursa, veya -1 ise lst değil
içermek str.

o int listelen(liste l)
içindeki öğelerin sayısını döndürür liste.

o liste liste birliği(liste lhs, liste sağ)
içindeki öğelerin birleşimini içeren bir liste döndürür. lhs ve rhs.

o liste liste birliği(liste lst, dizi str)
içindeki öğelerin birleşimini içeren bir liste döndürür. lst ve str.

o liste makelist(dize maske)
Eşleşen tüm dosyaların bir listesini döndürür maske. Örneğin, makelist("*.c") bir liste döndürür
ile biten tüm dosyaları içeren .c.

o liste makelist(tür, dizi maske)
Önceki işlevle aynı, ancak dizin öğelerinin türü farklı olabilir.
ilk argümanı olarak belirtildi:

sembol anlamı
IS_ALL tüm dizin girişlerini alır
IS_DIR, dahil tüm dizinleri alır. ve ..
IS_FILE dosyaların bir listesini alın
IS_SUBDIR tüm alt dizinleri alır

desen olduğunu unutmayın * Unix tipi işletim altındaki gizli girişlerle eşleşmeyecek
sistemler. Kullanmak .* bunun için.

o liste makelist(dize maske, daha yeni, dizi karşılaştırma dosyası)
Sağlanandan daha yeni olan maskeyle eşleşen tüm dosyaların listesini döndürür
karşılaştırma dosyası. Şebeke küçük yerine kullanılabilir daha yeni. Bunu not et daha yeni ve
küçük operatörler, dizeler değil.

o liste makelist([int = IS_FILE,] dizi maske, daha yeni, dizi karşılaştırma dosyası)
Önceki işlevle aynı, ancak tip olarak belirtilebilir liste makelist(tür,
dizi maske).

o makelist(dize maske, daha eski, dizi karşılaştırma dosyası)
Yukarıyı görmek; karşılaştırma dosyasından daha eski dosyaların bir listesini döndürür.

o makelist(tür, dizi maske, daha eski, dizi karşılaştırma dosyası)
Önceki işlevle aynı, ancak tip olarak belirtilebilir liste makelist(tür,
dizi maske).

o int yazdır(...)
Tüm (virgülle ayrılmış) bağımsız değişkenleri ekrana (yani standart çıktı akışı) gösterir.
Yazdırılan bağımsız değişkenlerin sayısını döndürür.

o int printf(dize biçim, ...)
Tüm (virgülle ayrılmış) bağımsız değişkenleri ekrana (yani standart çıktı akışı) gösterir.
Yazdırılan bağımsız değişkenlerin sayısını döndürür ( biçim dize bir argüman olarak sayılır).

If biçim %1 yer tutucuları içerir .. %n çıktı biçimlendirilir (ayrıca bkz.
strformat).

o int putenv(dize ortam)
Ekler envvar akıma (icmake) ortam Şu biçimi kullanın: "VAR=değer".
0 döndürür.

o dizi yeniden boyutlandır(dize sokak, int yeni uzunluk) Dizenin bir kopyasını döndürür str, yeniden boyutlandırıldı
yeni uzunluk karakterler. Eğer yeni uzunluk negatifse boş bir dize döndürülür,
if yeni uzunluk aşıyor str'ler uzunluk sonra yeni eklenen karakterler başlatılır
boşluklara.

o int sizeof(liste l)
kullanımdan kaldırıldı: kullan dinle.

o int sizeoflist(liste l)
kullanımdan kaldırıldı: kullan dinle.

o liste stat(dize giriş)
İade stat(2) rehber girişi bilgisi giriş liste olarak. döndürülen liste
iki elemanı vardır: eleman 0 nitelik değer, eleman 1 boyutunu içerir
dosya.

Öznitelikler, aşağıdaki önceden tanımlanmış öğelerden oluşan bit işaretleri olarak döndürülür.
sabitler:

S_IFCHR S_IFDIR S_IFREG
S_IREAD S_IWRITE S_IEXEC

Bak stat(2) bu sabitlerin anlamları için kılavuz sayfası.

o liste durum (kontrol, dizi giriş)
Önceki işlevle aynı, ancak belirterek denetleme as P_NOCHECK işlev
komut dosyasını sonlandırmaz. Daha doğrusu döner stat(2)'nin dönüş değeri.

o int strchr(dize sokak, dizi karakterler)
içindeki ilk dizini döndürür str karakterlerden herhangi biri nerede karakter bulunur veya -1
if str karakterlerin hiçbirini içermiyor karakter.

o int strlen(dize str)
içindeki karakter sayısını döndürür str (son 0'ı saymaz).

o int strfind(dize samanlık, dizi iğne)
Dizini şurada döndürür: samanlık nerede iğne bulunursa, veya -1 ise iğne içermiyor
in samanlık.
Bu işlev oldu denilen strstr() in sürümler önce 7.00.

o int strformat(dize biçim,...)
Bağımsız değişkenleri ele almak için %1 .. %2 yer tutucularını kullanarak biçimlendirilmiş bir dize döndürür
aşağıdaki biçim.
Örnek:

void main ()
{
int i = 10;
int j = 20;
dize s1;
dize s2;
// geleneksel yaklaşım:
s1 = (dize)i + " " + (dize)j + " " + (dize)i;
// strformat kullanarak:
s2 = strformat("%1 %2 %1", ben, j);
printf("s1 = %1, s2 = %2\n", s1, s2);
}

o dizi strlwr(dize s)
Küçük harfli bir kopyasını döndürür s.

o liste strtok(dize sokak, dizi ayırıcılar)
Tüm alt dizelerini içeren bir liste döndürür str bir veya daha fazla ile ayrılmış
(ardışık) karakterler ayırıcıları. Örneğin, strtok("merhaba icmake'nin+dünyası", " +")
üç dizeyi içeren listeyi döndürür "Merhaba", "icmake'nin", ve "Dünya".

o dizi strupr(dize s)
Büyük harfli bir kopyasını döndürür s.

o dizi substr(dize yazı, int ofset int saymak)
Bir alt dize döndürür metin, Başlayan ofsetAşağıdakilerden oluşan saymak karakterler. Eğer
ofset dizenin boyutunu aşıyor (veya ona eşit) veya saymak <= 0, ardından boş bir dize
Geri döndü. Eğer ofset 0'dan küçükse 0 kullanılır.

o int sistem (dize komutu)
çalıştırır komuta. Dönüş değeri, yürütülen komutun çıkış değerini gösterir. NS
dizi komuta yeniden yönlendirme ve/veya boru karakterleri içerebilir.

o int sistem(int kontrol etme, dizi komutu)
Önceki işlevle aynı işlevsellik, ancak denetleme as
KONTROL EDİLMEMİŞ işlev betiği sonlandırmaz. Aksine, geri dönecek
çağrılan komutun çıkış durumu veya 0x7f00 komut bulunamadıysa.

o dizi kırpma (dize s)
Bir kopyasını döndürür s baştaki ve sonundaki beyaz boşluklar olmadan.

o dizi trimleft(dize str)
Bir kopyasını döndürür s önde gelen beyaz boşluklar olmadan.

o dizi kırpma (dize s)
Bir kopyasını döndürür s boşluk bırakmadan.

KULLANICI TANIMLI FONKSİYONLAR


geçersiz ana

icmake komut dosyaları kullanıcı tanımlı bir işlevle sağlanmalıdır ana. İşlev ana vardır
sonuncusundan çıkarılabilecek üç isteğe bağlı parametre (envp) ilkine
(argc), gibi C. Tam prototipi (not: geçersiz dönüş türü):

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

In ana(),

o argc içindeki elemanların sayısını temsil eder. bağımsız değişken;

o bağımsız değişken 0 öğesi .bim adına eşit olacak şekilde argümanları içerir
dosya;

o envp "ortam" değişkenlerini içerir. İşlev dinle için kullanılabilir
elemanlarının sayısını belirleyin. Öğeler envp forma sahip olmak
değişken=değer. Alternatif olarak, fonksiyon getenv almak için kullanılabilir
belirli ortam değişkeni hemen. Örnek:

void main(int argc, argv listesi)
{
derlemek için liste;
int idx;

if (argc == 1)
kullanım(eleman(0, argv));

if (toCompile = değiştirilmiş("*.cc"))
{
for (idx = uzunluk(Derleme); idx--; )
derleme(element(idx,toCompile));

if (getenv("dryrun")[0] == "0")
bağlama(eleman(2, argv));
}
}

Tüm global değişkenleri tanımlarına göre başlatmış olmak ana tarafından çağrıldı
icmakeek görevleri gerçekleştirmek için çalışma zamanı destek sistemi.

Ayrıca tanımlı kullanıcı fonksiyonlar

Ek fonksiyonlar tanımlanabilir. Tanımlandıktan sonra, bu fonksiyonlar çağrılabilir. İleri
değişkenlerin veya işlevlerin referansı desteklenmez, ancak yinelemeli olarak çağrılır
fonksiyonlardır. İşlev bildirimleri desteklenmediğinden dolaylı özyineleme desteklenmez
ya desteklenir.

Kullanıcı tanımlı işlevler aşağıdaki öğelere sahip olmalıdır:

o İşlevin dönüş türü, şunlardan biri olmalıdır: geçersiz, int, dizi or liste. Orada
varsayılan bir tür değildir.

o Fonksiyonun adı, örn. derlemek.

o Sıfır veya daha fazla virgülle ayrılmış parametre tanımlayan bir parametre listesi. parametreler
kendileri bir tür adından oluşur (int, diziya da liste) ardından
parametrenin tanımlayıcısı. Örneğin, (sicim dış dosya, dizi kaynak).

o Bir vücut bir çift küme parantezi ile çevrili ({ ve }).

İşlev gövdeleri (isteğe bağlı olarak başlatılmış) değişken tanımları içerebilir. Değişken
tanımlar bir tür adıyla başlar, ardından bir veya daha fazla virgülle ayrılır (isteğe bağlı olarak
başlatıldı) değişken tanımlayıcıları. Bir değişken açıkça başlatılmamışsa,
varsayılan olarak başlatıldı. Varsayılan olarak bir int değişken 0 olarak başlatılır, bir dizi is
boş bir dizeye başlatıldı ("") Ve liste sıfır eleman listesine başlatılır.

Değişken tanımlarına ek olarak, gövdeler sıfır veya daha fazla ifade içerebilir (bkz.
Bölüm AKIŞI KONTROL). Değişkenlerin tanımlanabileceğini (ve isteğe bağlı olarak başlatılabileceğini) unutmayın.
fonksiyonların herhangi bir yerinde ve ayrıca Eğer, için ve süre ifadeleri.

davranışı icmake-değer döndürmeyen void olmayan işlevleri kullanan betikler
tanımladı.

onworks.net hizmetlerini kullanarak icmake'i çevrimiçi kullanın


Ad


Ad