InggrisPerancisSpanyol

Ad


favorit OnWorks

icmake - Online di Cloud

Jalankan icmake di penyedia hosting gratis OnWorks melalui Ubuntu Online, Fedora Online, emulator online Windows, atau emulator online MAC OS

Ini adalah perintah icmake yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

PROGRAM:

NAMA


icmake - Pemeliharaan program (membuat) utilitas menggunakan a C-seperti tata bahasa

RINGKASAN


membuat [pilihan] sumber[.im] [tujuan[.bim]] [-- [argumen]]

imun bimfile

DESKRIPSI


ikmake(1) dapat digunakan sebagai alternatif untuk membuat(1). Dalam mode operasi standarnya, itu
memanggil program berikut:

o icm-pp untuk memproses file icmake

o icm-komp untuk mengkompilasi kode byte membuat s

o icm-exec untuk mengeksekusi file byte-code

ikmake memungkinkan pemrogram untuk menggunakan bahasa pemrograman (sangat mirip dengan yang terkenal
C-bahasa pemrograman) untuk menentukan tindakan yang terlibat dalam program (kompleks)
pemeliharaan. Untuk ini, membuat menawarkan berbagai operator khusus serta serangkaian dukungan
fungsi yang telah terbukti berguna dalam pemeliharaan program.

Program imun(1) dapat digunakan untuk membongkar file byte-code (.bim) yang dikompilasi. Imun
terutama digunakan untuk ilustrasi, pendidikan, dan debugging.

Utilitas make tradisional mengkompilasi ulang sumber setelah file header dimodifikasi. Dalam
konteks C + + pengembangan program ini sering kali merupakan ide yang buruk, karena menambahkan anggota baru ke a
kelas biasanya tidak mengharuskan Anda untuk mengkompilasi ulang sumber kelas. Untuk menangani kelas
ketergantungan icmbud(1) dapat memeriksa KELAS file yang dapat digunakan untuk mendefinisikan dependensi
antar kelas. Secara default, dependensi kelas tidak ditafsirkan. Mengacu kepada icmconf(7)
halaman manual untuk detail lebih lanjut.

PILIHAN


ikmake menggunakan file dan opsi berikut:

o sumber: membuat file sumber skrip (ekstensi default: .saya m).

o dest: biner membuat file skrip (default: `sumber'.bim, disebut `.bim file'
bawah).

o --: membuat pemisah argumen memisahkan membuat argumen dari argumen berlalu
ke .bim filenl() args: argumen berikut -- diteruskan ke file .bim
apa adanya, dan tersedia dari daftar argumen parameter yang didefinisikan sebagai membuat
naskah utama parameter kedua fungsi (lihat di bawah di bagian PENGGUNA DEFINISI
FUNGSI). Untuk beberapa opsi (lihat di bawah) -- pemisah tidak diperlukan.

ikmake mendukung berbagai opsi, dijelaskan selanjutnya. NS -h opsi mengesampingkan semua yang lain
pilihan, -a opsi mengesampingkan semua opsi lain kecuali untuk -h. Dari tindakan yang tersisa
pilihan (-B, -C, -e, -Saya, -p dan -t) hanya satu yang dapat ditentukan:

o -a
tampilkan informasi tentang membuat, ditolak oleh -h;

o -b
dihentikan: gunakan opsi -e sebagai gantinya;

o -c
itu membuat file sumber dikompilasi, menghasilkan file .bim;

o -e
jalankan membuat .bim file, diberikan sebagai membuatargumen file pertama. Tambahan apa pun
argumen diteruskan ke file .bim apa adanya, dan -- tidak harus ditentukan;

o -F
nama file dan bendera serta gambaran umum dari semua tindakan yang harus dilakukan oleh
membuat ditampilkan pada aliran keluaran standar;

o -h
berikan info penggunaan dan akhiri membuat;

o -i
argumen pertama adalah membuat file sumber, file biner default adalah
dibangun jika perlu. Setiap argumen tambahan diteruskan ke file .bim
apa adanya, dan -- tidak harus ditentukan;

o -p
itu membuat file sumber hanya diproses sebelumnya, dan file yang diproses sebelumnya ditulis
untuk membuatargumen file kedua (secara default `sumber'.pim);

o -q
diabaikan, akan dihapus di masa mendatang membuat Versi: kapan;

o -t
argumen berikut -t adalah nama file .bim sementara, yang dihapus
setelah membuatpanggilan. Kapan . ditentukan sebagai nama file .bim sementara
lalu direktori sementara default, diikuti oleh membuatid proses, diikuti oleh
.bim digunakan.

Mengikuti nama file .bim sementara nama membuat skrip sumber
harus ditentukan. Setiap argumen tambahan diteruskan ke file .bim apa adanya, dan
-- tidak harus ditentukan; Setelah mengatur flag yang dapat dieksekusi dari file skrip sumber
(chmod +x naskah), dan menyediakannya dengan baris awal seperti ini:

#!/usr/bin/icmake -t.

itu membuat script bisa langsung dipanggil :

skrip arg1 arg2

dalam hal ini file membuat naskah `skrip' dieksekusi saat menerima
argumen naskah argumen1 argumen2.

o -T
opsi ini harus dilengkapi dengan nama direktori yang digunakan untuk menyimpan
berkas sementara. Misalnya, saat mengkompilasi sebuah membuat skrip, output dari membuat'S
preprocessor adalah file sementara yang dihapus saat keluar. Secara default / Tmp digunakan,
kecuali kalau / Tmp bukan direktori yang dapat ditulis, dalam hal ini pengguna saat ini $ HOME
direktori digunakan. Nama file sementara implisit selalu dimulai dengan id proses dari
saat ini membuat proses.

o -v
pameran membuatnomor versi, dan akhir membuat, ditolak oleh -h

Imun:

bimfile: biner membuat berkas skrip.

PREPROSESOR PETUNJUK


Direktif praprosesor berikut tersedia:

o komentar:
standar C komentar (semua antara /* dan */) serta komentar-ke-akhir-baris (semua
isi baris berikut //) diabaikan.

o Shell startup: Baris pertama dari membuat-skrip boleh dimulai dengan #!jalur, Di mana
path mendefinisikan lokasi absolut dari membuat program. Dengan membuat skrip
dieksekusi, itu bisa dipanggil tanpa memanggil secara eksplisit membuat.

Misalnya, jika baris pertama dari icmakefile (yang dapat dieksekusi) 'icm' (tanpa ekstensi)
mengandung

#!/usr/bin/icmake -i

kemudian ICM dapat dikeluarkan sebagai perintah, sehingga mengeksekusi

/usr/bin/icmake -i cm ...

Kalau tidak,

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

dapat digunakan, menghasilkan eksekusi

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

Dalam hal ini file biner dihapus saat keluar.

o #include "nama file"
File nama file disertakan di lokasi arahan

o #include
File nama file termasuk di lokasi #include pengarahan; nama file
dicari di direktori yang dipisahkan titik dua yang ditentukan oleh IM lingkungan Hidup
variabel. Kemunculan pertama dari nama file dalam direktori yang ditentukan oleh IM
variabel lingkungan digunakan.

o #menetapkan identifier [definisi]
Teks identifier akan diganti oleh definisi. Definisi tersebut mungkin mengandung
referensi ke pengidentifikasi yang sudah ditentukan, menggunakan ${pengidentifikasi} format. jika
${pengidentifikasi} belum didefinisikan (belum), teks ${pengidentifikasi} secara harfiah disimpan.
Untuk mencegah rekursi tak terbatas paling banyak 100 ${pengidentifikasi} penggantian diperbolehkan.

Definisi dilanjutkan pada baris berikutnya jika karakter terakhir pada sebuah baris adalah a
garis miring terbalik (\). (yang tidak termasuk dalam definisi). Praprosesor
menggabungkan string bertanda kutip ganda, dan string bertanda kutip ganda tidak boleh menjangkau beberapa
garis. Beberapa kosong (di luar string yang dikutip ganda) dalam definisi adalah
dikontrakkan ke satu ruang kosong.

Definisi berikut #tentukan pengenal adalah opsional. Jika dihilangkan,
makro didefinisikan, sehingga dapat digunakan dalam #jika(n)def arahan (lihat di bawah), tetapi mereka
tidak digantikan oleh teks apa pun di membuat pernyataan kode.

o #ifdef identifier
Jika identifier makro didefinisikan blok kode berikutnya (sampai pencocokan #lain
or #berakhir jika direktif telah dibaca) dikompilasi byte. Jika tidak, blok kodenya adalah
diabaikan.

o #ifndef identifier
Jika identifier makro adalah tidak mendefinisikan blok kode berikutnya (sampai pencocokan
#lain or #berakhir jika direktif terdeteksi) dikompilasi byte. Jika tidak, blok
kode diabaikan.

o #lain
Mengakhiri #ifdef dan #ifndef direktif, membalikkan keputusan penerimaan tentang
kode berikut. Hanya satu #lain direktif dapat dikaitkan dengan #jika(n)def
arahan.

o #berakhir jika
Mengakhiri blok preprosesor mulai dari pencocokan #ifdef, #ifndef or #lain
pengarahan. NS #berakhir jika direktori dan pencocokannya #jika(n)def direktif harus
ditentukan dalam file yang sama.

o #undef identifier
Remove identifier dari himpunan simbol yang ditentukan. Ini tidak mempengaruhi
spesifikasi simbol yang telah ditentukan sebelumnya di mana: pengenal definisi
telah digunakan. Jika identifier belum ditentukan, peringatan dikeluarkan.

DATA JENIS


ikmake mendukung tipe data ini:

o ASCII karakter konstan
Konstanta karakter ASCII terdiri dari satu karakter, dikelilingi oleh single atau double
kutipan. Karakter tunggal (misalnya, 'A') mewakili karakter itu sendiri. Standar
urutan pelarian (misalnya, '\n') didukung dan mewakili konversi standar mereka
nilai (misalnya, '\n' mewakili nilai ascii 10 (desimal)). Pelarian non-standar
urutan (misalnya, '\x') mewakili karakter ascii mengikuti karakter escape
(begitu '\x' sama dengan 'x'). Urutan pelarian yang terdiri dari tiga digit oktal mewakili
karakter ascii yang sesuai dengan nilai oktal modulo 256 (misalnya, '\123').
Urutan melarikan diri yang terdiri dari x diikuti oleh dua digit heksadesimal mewakili
karakter ascii yang sesuai dengan nilai heksadesimal (misalnya, '\xa4').

o int
Nilai integral, mulai dari -0x8000 melalui 0x7ffff. int konstanta mungkin
ditentukan sebagai angka desimal (dimulai dengan angka 1 hingga 9), angka oktal
(dimulai dengan 0, diikuti oleh satu atau lebih digit oktal) bilangan heksadesimal
(dimulai dengan 0x, diikuti oleh satu atau lebih digit heksadesimal) atau sebagai ASCII
konstanta karakter.

o tali
Variabel teks. Konstanta string dibatasi oleh tanda kutip ganda. Beberapa string
konstanta dapat digabungkan, tetapi konstanta string tunggal mungkin tidak menjangkau banyak
garis. Konstanta string dipisahkan oleh spasi saja (yaitu, kosong, baris baru,
komentar) digabungkan dan mewakili satu konstanta string tunggal. Untuk menunjukkan
akhir baris dalam konstanta string gunakan \n urutan pelarian.

Konstanta karakter ASCII yang dikelilingi oleh tanda kutip ganda juga dapat digunakan dalam
ekspresi aritmatika jika salah satu operan adalah int. Karakter tunggal
konstanta string harus menjadi konstanta, dan tidak bisa menjadi a tali variabel.

Demikian juga, konstanta karakter ASCII yang dikelilingi oleh tanda kutip tunggal dapat digunakan dalam
situasi di mana operan string diharapkan.

o daftar
Struktur data yang berisi serangkaian yang dapat diakses secara individual tali nilai-nilai. Kapan
daftar berisi elemen, elemen pertamanya ditunjukkan oleh indeks 0.

o membatalkan
Digunakan dengan definisi fungsi untuk menunjukkan bahwa fungsi tidak mengembalikan a
nilai.

Variabel dapat didefinisikan di tingkat global maupun di tingkat lokal mana pun di dalamnya
fungsi. Ketika didefinisikan di dalam fungsi, standar C aturan pelingkupan dan visibilitas
berlaku. Misalnya, variabel lokal hanya dapat digunakan sendiri atau dalam sarang yang lebih dalam
blok, visibilitasnya ditutupi dalam blok bersarang lebih dalam dengan mendefinisikan secara identik
variabel bernama di dalam blok yang lebih bersarang itu. Variabel diketik dengan kuat, dan
tidak dapat memiliki tipe membatalkan.

Variabel dapat diinisialisasi ketika mereka didefinisikan. Inisialisasi adalah ekspresi, bahwa
dapat menggunakan fungsi yang ditentukan sebelumnya atau yang ditentukan pengguna, nilai konstanta, dan nilai variabel yang
terlihat pada titik definisi.

DITENTUKAN SEBELUMNYA KONSTAN


Konstanta berikut ditentukan sebelumnya oleh membuat. Semua tetap int nilai:

───────────────────────────────
nilai simbol yang dimaksudkan untuk
───────────────────────────────
O_ALL 8 daftar yang dibuat
O_DIR 2 daftar putar
O_FILE 1 daftar yang dibuat
O_SUBDIR 4 daftar putar
───────────────────────────────
MATI 0 gema
PADA 1 gema
───────────────────────────────
P_CHECK 0 panggilan sistem
P_NOCHECK 1 panggilan sistem
───────────────────────────────
Status S_IEXEC 32
S_IFCHR 1 status
S_IFDIR 2 status
Status S_IFREG 4
S_IREAD 8 status
S_IWRITE 16 status
───────────────────────────────

Konstanta berikut bergantung pada arsitektur:

────────────────────────────────────────────────── ────────────
simbol 1 ketika didefinisikan pada platform, jika tidak 0
────────────────────────────────────────────────── ────────────
unix Unix, biasanya dengan kompiler gcc GNU
UNIX mungkin juga tersedia
linux x86 menjalankan Linux (biasanya dengan gcc)
LINUX mungkin tersedia
M_SYSV, M_UNIX x86 menjalankan SCO/Unix
_POSIX _SOURCE Unix dengan kompiler yang sesuai dengan Posix
__hpux HP-UX, dengan kompiler asli HP
────────────────────────────────────────────────── ────────────

OPERATOR


diketik int operan:

Semua C operator tersedia (kecuali untuk operator pointer, seperti membuat tidak mendukung
pointer). Mereka beroperasi seperti mereka C-rekan-rekan bahasa pemrograman.

diketik string operan:

Untuk tali ketik variabel dan/atau konstanta operator berikut tersedia (a dan b
mewakili tali variabel atau konstanta):

o a + b: mengembalikan yang baru tali nilai yang mengandung rangkaian tali nilai-nilai a
dan b. Catat itu tali konstanta dapat langsung digabungkan (tanpa menggunakan +
operator), misalnya, dua baris berikut keduanya mendefinisikan string "Halo dunia":

"Halo Dunia"
"halo" + "dunia"

o a += b: a harus a tali variabel, dimana tali variabel atau nilai b is
ditambahkan.

o perbandingan string: operator == != <= >= < > != dan == dapat diterapkan ke tali
nilai atau variabel, mengembalikan 1 jika perbandingan berhasil, jika tidak 0.
Perbandingan peka huruf besar-kecil, dan mengikuti urutan atau karakter seperti yang ditentukan
dalam ASCII set karakter.

o !a: boolean ! (bukan) operator mengembalikan 1 jika tali a kosong, jika tidak 0 adalah
dikembalikan.

o a lebih muda b, a baru b: mengembalikan 1 jika file a lebih baru dari file b. Misalnya,
"sumber.cc" baru "sumber.o". File-file a dan b tidak harus ada: jika keduanya tidak ada
ada 0 dikembalikan; jika b tidak ada, 1 dikembalikan; jika a tidak ada 0 adalah
dikembalikan; jika mereka sama-sama tua 0 dikembalikan. (NS ada() fungsi yang telah ditentukan sebelumnya
(lihat di bawah, bagian DITENTUKAN SEBELUMNYA FUNGSI) dapat digunakan untuk menguji secara eksplisit apakah a
berkas ada).

o a lebih tua b: ternyata 1 jika file a lebih tua dari file b. Misalnya, "libprog.a" lebih tua
"sumber.o". File-file a dan b tidak harus ada: jika keduanya tidak ada 0 adalah
dikembalikan; jika a tidak ada, 1 dikembalikan; jika b tidak ada 0 dikembalikan; jika
mereka sama-sama tua 0 dikembalikan.

o []: operator indeks mengambil karakter dari variabel string atau konstanta: it
mengembalikan string sebagai nilai. Oleh karena itu, pernyataan berikut mengkompilasi OK:

// asumsikan str1 dan str2 adalah string
str1 = str2[3];

tetapi pernyataan berikut tidak dapat dikompilasi:

str2[3] = "a";

String kosong dikembalikan jika nilai indeks yang diberikan tidak valid.

o Operator `backtick` (`tali cmd`)
Sebuah string yang ditempatkan di antara dua backticks dieksekusi oleh buka(3) fungsi. NS
keluaran standar yang dihasilkan oleh perintah yang disimpan dalam argumen string adalah
dikembalikan sebagai daftar. Daftar kosong menunjukkan bahwa perintah tidak dapat dijalankan.
Perintah yang dapat dieksekusi tetapi tidak menghasilkan output apa pun mengembalikan daftar
mengandung satu elemen kosong. Output aliran kesalahan standar perintah tidak
dikumpulkan oleh operator backtick. Namun, pengalihan shell standar bisa jadi
digunakan untuk mengumpulkan output aliran kesalahan standar. Contoh:

printf(`"l"`); // mencetak elemen dalam
// direktori saat ini

Fungsi yang telah ditentukan sebelumnya eval(string cmd) berperilaku persis seperti backtick
operator: mereka adalah sinonim.

diketik daftar operan:

Untuk daftar ketik variabel dan/atau nilai operator berikut tersedia:

o a + b: mengembalikan yang baru daftar nilai yang mengandung rangkaian daftar nilai-nilai a dan
b. Ini tidak operasi himpunan: jika sebuah elemen muncul baik di a dan dalam b, mereka akan
muncul dua kali dalam daftar yang dihasilkan (tambahan set disediakan oleh built-in
fungsi mendengarkan).

o a - b: mengembalikan yang baru daftar nilai yang mengandung unsur-unsur dalam a yang tidak hadir
in b. Ini is operasi set-difference: daftar yang dikembalikan berisi semua elemen
in a yang bukan elemen dari b.

o a += b: elemen dalam b ditambahkan ke elemen dalam a, yang harus daftar
variabel. Ini adalah tidak operasi yang ditetapkan.

o a -= b: elemen dalam b dihilangkan dari elemen-elemen di a, yang harus daftar
variabel. Ini is operasi yang ditetapkan: semua elemen dari a yang ditemukan di b adalah
dihapus dari a.

o daftar perbandingan kesetaraan: operator != dan == dapat diterapkan ke daftar nilai atau
variabel. Operator == mengembalikan 1 jika kedua daftar memiliki elemen demi elemen yang identik
elemen, jika tidak 0 dikembalikan. Operator != membalikkan hasil dari ==.

o !a: boolean ! operator mengembalikan 1 jika daftar a kosong, jika tidak 0 adalah
dikembalikan.

o []: operator indeks mengambil elemen daftar dari variabel daftar: ia mengembalikan a
string sebagai nilai. Oleh karena itu, pernyataan berikut mengkompilasi OK:

// asumsikan lst adalah daftar, str adalah string
str = pertama[3];

tetapi pernyataan berikut tidak dapat dikompilasi:

pertama[3] = str;

String kosong dikembalikan jika nilai indeks yang diberikan tidak valid.

pengecoran:

Tipe-gips dapat dilakukan menggunakan standar C cast-operator untuk dilemparkan:

o String ke int dan sebaliknya ((int)"123", (tali)55)

o String ke daftar (daftar lst = (daftar) "halo")

FLOW PENGENDALIAN


ikmake menawarkan subset berikut dari Cpernyataan. Mereka dapat digunakan seperti dalam C
bahasa pemrograman.

o ekspresi ;
Pernyataan ekspresi polos;

o Pernyataan majemuk
Variabel jenis apa pun dapat didefinisikan dan diinisialisasi di mana saja di dalam senyawa apa pun
penyataan. NS jarak penglihatan suatu variabel dimulai dari titik definisinya.

o if (kondisi) pernyataan
Di dalam kondisi, sebuah variabel dapat didefinisikan dan diinisialisasi. Misalnya,

jika (string str = getText())
proses(str);

Dalam contoh ini, proses tidak disebut jika getText () mengembalikan string kosong. NS
variabel str tidak ada baik sebelum atau sesudah if pernyataan.

o if (kondisi) pernyataan lain pernyataan
Seperti pernyataan sebelumnya, di dalam kondisi sebuah variabel dapat didefinisikan dan
diinisialisasi.

o untuk (init; kondisi; kenaikan) pernyataan
Variabel (dari satu jenis) dapat diinisialisasi (dan secara opsional didefinisikan) dalam
init bagian. NS init, kondisi dan kenaikan bagian mungkin tetap kosong. NS
bagian kondisi kosong ditafsirkan sebagai `selalu benar'.

o sementara (kondisi) pernyataan
Di dalam kondisi, sebuah variabel dapat didefinisikan dan diinisialisasi.
Sebuah pelengkap do ... ketika() pernyataan tidak tersedia. Perhatikan bahwa mendefinisikan a
variabel, menggunakan ekspresi inisialisasi berarti inisialisasi
mengekspresikan dieksekusi pada setiap iterasi dari sementara penyataan. Jadi berikut ini
pernyataan tidak akan pernah berakhir, dan akan menampilkan aliran nilai yang tidak pernah berakhir 10:

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

o kembali;, dan kembali ekspresi;
Polos kembali pernyataan dapat digunakan dalam membatalkan fungsi, dan kembali ekspresi
pernyataan yang digunakan dalam jenis lain dari fungsi. Fungsinya utama memiliki tipe pengembalian
membatalkan dan begitu dalam utama hanya polos kembali pernyataan dapat digunakan. Secara default dan membuat
nilai keluar skrip sama dengan 0. Gunakan fungsi bawaan keluar (lihat di bawah) untuk menentukan
nilai keluar lainnya.

Be disarankan: perilaku fungsi non-void yang tidak mengembalikan nilai tidak terdefinisi.

o istirahat
Daun untuk dan sementara pernyataan, mengesampingkan kondisi pernyataan.

o terus
Dilanjutkan dengan iterasi berikutnya dari untuk or sementara pernyataan.

o keluar (ekspresi)
Mengakhiri eksekusi an membuat-naskah. NS ekspresi harus mengevaluasi ke int
value, yang menjadi nilai keluar skrip.

DITENTUKAN SEBELUMNYA FUNGSI


ikmake menawarkan fungsi standar berikut, yang dapat digunakan di mana saja di membuat
skrip. Ikhtisar berikut ini diurutkan menurut abjad berdasarkan nama fungsi.

o membatalkan arghead(string h)
Fungsi pembantu dari exec () (lihat juga di bawah di exec ()): mendefinisikan `kepala argumen',
untuk digunakan dengan exec (). Secara default, `kepala argumen' adalah string kosong.

o membatalkan argtail (rangkaian t)
Fungsi pembantu dari exec () (lihat juga di bawah di exec ()): mendefinisikan `ekor argumen',
untuk digunakan dengan exec (). Secara default, `argument tail' adalah string kosong.

o int ascii (string s)
Mengembalikan karakter pertama dari s sebagai int; misalnya, ascii("A") mengembalikan 65;

o tali ascii (ke dalam i)
Pengembalian i sebagai string, misalnya, ascii(65) mengembalikan string "A";

o tali ubah_basis(string file, tali basis baru)
Mengubah nama dasar dari fillet, mengembalikan nama yang diubah. Misalnya,
change_base("/path/demo.im", "keluar") Pengembalian "/path/out.im";

o tali ubah_ext(string file, tali terbaru)
Mengubah ekstensi fillet, mengembalikan nama yang diubah. Misalnya,
rss_changeExt("sumber.cc", "Hai") Pengembalian "sumber.o";

o tali ubah_path(string file, tali jalur baru)
Mengubah spesifikasi jalur dari fillet, mengembalikan nama yang diubah. Misalnya,
change_path("tmp/biner", "/ usr / bin") Pengembalian "/usr/bin/biner". Perhatikan bahwa
/-pemisah dimasukkan jika diperlukan.

o tali chdir(string direktori baru)
Mengubah direktori kerja skrip, mengembalikan direktori sebelumnya sebagai absolut
jalan.

penggunaan chdir(".") untuk mendapatkan direktori kerja saat ini, chdir("") mungkin digunakan untuk
dapatkan direktori kerja startup (fungsi ini rusak dalam rilis
sebelum dari pukul 7.00:XNUMX, tetapi sekarang beroperasi). Fungsi mengakhiri
membuat-script jika ditentukan direktori baru tidak ada.

o tali chdir(ke dalam memeriksa, tali direktori baru)
Fungsionalitas yang sama dengan fungsi sebelumnya, tetapi dengan menentukan memeriksa as
P_NOCHECK. fungsi tidak akan menghentikan skrip. Sebaliknya, itu akan mengembalikan
direktori kerja skrip saat ini.

o cmdhead(string h)
Fungsi pembantu dari exec () (lihat juga di bawah di exec ()): Mendefinisikan `kepala perintah', untuk
digunakan dengan exec (). Secara default, `command head' adalah string kosong.

o cmdtail(string t)
Fungsi pembantu dari exec () (lihat juga di bawah di exec ()): Mendefinisikan `ekor perintah', untuk
digunakan dengan exec (). Secara default, `command tail' adalah string kosong.

o gema (ke dalam memilih)
Mengontrol gema program yang dipanggil (dan argumennya), tentukan MATI jika bergema
tidak diminta. Secara default gema (AKTIF) digunakan.

o tali elemen (ke dalam indeks, daftar (Atau rangkaian) var)
Bertindak identik dengan operator indeks: merujuk ke indeks ([]) operator di
bagian OPERATOR.

o daftar eval(string str)
Fungsi ini bekerja secara identik dengan operator backtick. Contoh yang diberikan dengan
operator backtick karena itu juga dapat ditulis seperti ini:

printf(eval("l")); // mencetak elemen dalam arus
// direktori

o eksekutif(string cmd, ...)
Menjalankan perintah dengan argumen. Setiap argumen akan diawali dengan berargumen()'S
argumen dan postfixed oleh ekor argumen()argumen. Perhatikan bahwa tidak ada bagian kosong yang dimasukkan
antara berargumen()isi, argumen yang tepat, dan ekor argumen()argumen. Semua
sehingga argumen yang dimodifikasi digabungkan, kali ini dipisahkan oleh satu kosong, dan
kemudian cmdhead()Isinya disisipkan di antara perintah dan argumen pertama
(di kedua sisi dibatasi oleh satu kosong) dan cmdtail()isinya terlampir
ke argumen (sekali lagi, dipisahkan oleh satu kosong). PATH dicari untuk menemukan
cmd. 0 dikembalikan.

o eksekutif (ke dalam cekcmd, tali cmd, ...)
Fungsionalitas yang sama dengan fungsi sebelumnya, tetapi dengan menentukan memeriksa as
TIDAK DIPERIKSA fungsi tidak akan menghentikan skrip. Sebaliknya, itu akan mengembalikan
disebut status keluar perintah, atau 0x7f00 jika perintah tidak ditemukan.

o jalankan (string cmd, tali cmdhd, tali aduh, ... tali argtl, tali cmdtl)
Sama dengan exec (), tetapi perintah head/tail dan argumen head/tail harus ditentukan.

Perintah yang benar-benar dijalankan dimulai dengan cmd, Diikuti oleh cmdhd. Berikutnya adalah seri
argumen berikut, masing-masing diapit oleh aduh dan argumen. Perintah diakhiri dengan
cmdtl. 0 dikembalikan

o jalankan (ke dalam memeriksa, tali cmd, tali cmdhd, tali aduh, ... tali argtl,
tali cmdtl)
Fungsionalitas yang sama dengan fungsi sebelumnya, tetapi dengan menentukan memeriksa as
TIDAK DIPERIKSA fungsi tidak akan menghentikan skrip. Sebaliknya, itu akan mengembalikan
disebut status keluar perintah, atau 0x7f00 jika perintah tidak ditemukan.

o int ada (string mengajukan)
Mengembalikan nilai bukan nol jika fillet ada, jika tidak 0 dikembalikan.

o daftar fget (string file, daftar mengimbangi)
CATATAN: in membuat versi 8.00.00 prototipe fungsi ini diubah dari
daftar fget (string file, int mengimbangi) untuk daftar fget (string file, daftar mengimbangi).

Baris berikutnya ditemukan di offset yang terkandung dalam mengimbangi dibaca dari fillet. Lulus dan
daftar kosong ke lupa untuk membaca fillet dari awal.

Ini mengembalikan daftar yang berisi elemen pertama dari isi baris baca
(tanpa \n terminator garis), sebagai elemen kedua terminator garis `\n'
(jika ditemui), dan sebagai elemen ketiga string OK jika garis berhasil
Baca, GAGAL jika membaca dari file gagal. Saat membaca di EOF daftar kosong adalah
dikembalikan. Daftar yang dikembalikan mungkin berisi elemen tambahan, yang secara internal
digunakan oleh lupa saat membaca baris berikutnya.

Untuk membaca beberapa baris, mulailah dengan melewatkan daftar kosong sebagai mendapat argumen kedua.
Untuk membaca baris berikutnya, berikan daftar yang dikembalikan sebelumnya ke fget's kedua
argumen.

Berikut adalah contoh yang menunjukkan cara membaca file lengkap:

daftar ulang;
sementara (1)
{
ret = fgets("nama file", ret);
jika (!ret)
break;
proses(ret[0], ret[1]);
}

o int fprintf(string nama file, ...)
Menambahkan semua argumen (dipisahkan koma) ke file nama file. Mengembalikan jumlah
argumen yang dicetak.

o int fprintf(string nama file, tali format, ...)
Menambahkan semua argumen (dipisahkan koma) ke file nama file. Mengembalikan jumlah
argumen yang dicetak.

If format berisi placeholder %1 .. %n output diformat (lihat juga
format str). Perhatikan bahwa dalam hal ini penghitungan argumen (juga) dimulai di luar
format string: argumen pertama mengikuti format disebut sebagai %1.

o tali get_base(string mengajukan)
Mengembalikan nama dasar dari fillet. Nama dasarnya adalah file tanpa awalan jalurnya
dan tanpa ekstensinya. Ekstensi adalah semua informasi yang dimulai dari final
titik di nama file. Jika tidak ada titik akhir yang ditemukan, nama file adalah nama dasarnya.
Misalnya, nama dasar ab sama dengan a, nama dasar dari abc sama dengan ab, dasar
nama dari a/b/c sama dengan c.

o tali dapatkan()
Mengembalikan tombol yang ditekan berikutnya sebagai string (menekan `Enter' tidak diperlukan).

o tali get_dext(string mengajukan)
Mengembalikan ekstensi dari fillet, termasuk titik pemisah. Ekstensi adalah semua
informasi dimulai dari titik akhir nama file.

Jika tidak ada titik akhir yang ditemukan, string kosong akan dikembalikan.

o daftar getenv(string lingkungan)
Mengembalikan nilai variabel lingkungan envvar dalam daftar yang berisi dua elemen:

elemen pertama menunjukkan apakah variabel lingkungan didefinisikan (nilai
"1") atau tidak (nilai "0");
elemen kedua menunjukkan nilai variabel lingkungan.

Variabel lingkungan berbentuk variabel=nilai, dan jika didefinisikan daftar
elemen kedua mengandung nilai. Jika nilainya kosong, variabel didefinisikan, tetapi
tidak memiliki teks yang terkait dengannya.

o tali get_ext(string mengajukan)
Mengembalikan ekstensi dari fillet, kecuali titik pemisah. Ekstensi adalah semua
informasi dimulai dari titik terakhir dalam nama file.

Jika tidak ada titik akhir yang ditemukan, string kosong akan dikembalikan.

o int dapatkanpid()
Mengembalikan proses-id dari icmake byte code interpreter icm-exec.

o tali mendapat()
Mengembalikan baris berikutnya yang dibaca dari keyboard sebagai tali. Garis yang dimasukkan pada
keyboard harus diakhiri dengan tombol `Enter', yang tidak disimpan dalam pengembalian
String.

o tali get_path(string mengajukan)
Mengembalikan awalan jalur dari fillet. Awalan jalur adalah semua informasi hingga (dan
termasuk) pemisah direktori akhir (yaitu, tergantung pada operasi
sistem, garis miring ke depan atau garis miring terbalik).

Jika tidak ada jalur yang ditemukan, string kosong akan dikembalikan.

o int pencarian daftar(daftar pertama, tali str)
Mengembalikan indeks pertama di lst dimana talinya str ditemukan, atau -1 jika lst tidak
mengandung str.

o int listlen(daftar l)
Mengembalikan jumlah elemen dalam daftar.

o daftar listunion(daftar haha, daftar kanan)
Mengembalikan daftar yang berisi gabungan elemen dalam lhs dan rhs.

o daftar listunion(daftar pertama, tali str)
Mengembalikan daftar yang berisi gabungan elemen dalam lst dan str.

o daftar daftar buatan (string masker)
Mengembalikan daftar semua file yang cocok masker. Misalnya, daftar maket("*.c") mengembalikan daftar
berisi semua file yang berakhiran .c.

o daftar daftar buatan (ketik, tali masker)
Sama seperti fungsi sebelumnya, tetapi jenis elemen direktori mungkin
ditentukan sebagai argumen pertama:

arti simbol
IS_ALL mendapatkan semua entri direktori
IS_DIR mendapatkan semua direktori, termasuk . dan ..
IS_FILE mendapatkan daftar file
IS_SUBDIR dapatkan semua subdirektori

Perhatikan bahwa pola * tidak akan cocok dengan entri tersembunyi di bawah operasi tipe Unix
sistem. Menggunakan .* untuk itu.

o daftar daftar buatan (string topeng, lebih baru, tali membandingkan file)
Mengembalikan daftar semua file yang cocok dengan topeng yang lebih baru dari yang disediakan
membandingkan file. Operator lebih muda dapat digunakan sebagai ganti baru. Catat itu baru dan
lebih muda adalah operator, bukan string.

o daftar daftar buatan([int = IS_FILE,] tali topeng, lebih baru, tali membandingkan file)
Sama seperti fungsi sebelumnya, tapi mengetik dapat ditentukan seperti pada daftar daftar buatan (ketik,
tali masker).

o daftar buatan (string topeng, lebih tua, tali membandingkan file)
Lihat di atas; mengembalikan daftar file yang lebih tua dari comparefile.

o daftar buatan (ketik, tali topeng, lebih tua, tali membandingkan file)
Sama seperti fungsi sebelumnya, tapi mengetik dapat ditentukan seperti pada daftar daftar buatan (ketik,
tali masker).

o int cetakf(...)
Menampilkan semua argumen (dipisahkan koma) ke layar (yaitu, aliran keluaran standar).
Mengembalikan jumlah argumen yang dicetak.

o int printf(string format, ...)
Menampilkan semua argumen (dipisahkan koma) ke layar (yaitu, aliran keluaran standar).
Mengembalikan jumlah argumen yang dicetak ( format string dihitung sebagai satu argumen).

If format berisi placeholder %1 .. %n output diformat (lihat juga
format str).

o int putenv(string lingkungan)
Menambahkan envvar ke arus (membuat) lingkungan Gunakan format: "VAR=nilai".
Mengembalikan 0.

o tali mengubah ukuran (string str, int panjang baru) Mengembalikan salinan string str, diubah ukurannya menjadi
panjang baru karakter. Jika panjang baru negatif maka string kosong dikembalikan,
if panjang baru melebihi str's panjang maka karakter yang baru ditambahkan diinisialisasi
ke ruang kosong.

o int ukuran(daftar l)
Tidak digunakan lagi: gunakan mendengarkan.

o int sizeoflist(daftar l)
Tidak digunakan lagi: gunakan mendengarkan.

o daftar status(string pintu masuk)
Pengembalian Stat(2) informasi entri direktori masuk sebagai daftar. Daftar yang dikembalikan
memiliki dua elemen: elemen 0 adalah atribut nilai, elemen 1 berisi ukuran
berkas.

Atribut dikembalikan sebagai bit-flag, terdiri dari yang telah ditentukan sebelumnya
konstanta:

S_IFCHR S_IFDIR S_IFREG
S_IREAD S_ITULIS S_IEXEC

Lihat Stat(2) halaman manual untuk arti dari konstanta ini.

o daftar status (memeriksa, tali pintu masuk)
Sama seperti fungsi sebelumnya, tetapi dengan menentukan memeriksa as P_NOCHECK fungsi
tidak akan menghentikan skrip. Sebaliknya, itu kembali Stat(2) nilai kembalian.

o int strchr(string str, tali karakter)
Mengembalikan indeks pertama di str di mana salah satu karakter di tank ditemukan, atau -1
if str tidak mengandung karakter apa pun di tank.

o int strlen(string str)
Mengembalikan jumlah karakter dalam str (tidak termasuk 0 akhir).

o int temukan(string tumpukan jerami, tali jarum)
Mengembalikan indeks dalam tumpukan jerami dimana jarum ditemukan, atau -1 jika jarum tidak terkandung
in tumpukan jerami.
Kredensial mikro fungsi adalah bernama strstr() in Versi sebelum 7.00.

o int strformat(string format,...)
Mengembalikan string yang diformat menggunakan placeholder %1 .. %2 untuk mengatasi argumen
format berikut.
Contoh:

membatalkan main ()
{
int saya = 10;
ke dalam j = 20;
tali s1;
tali s2;
// pendekatan tradisional:
s1 = (string)i + " " + (string)j + " " + (string)i;
// menggunakan format str:
s2 = strformat("%1 %2 %1", i, j);
printf("s1 = %1, s2 = %2\n", s1, s2);
}

o tali strlwr(string s)
Mengembalikan duplikat huruf kecil dari s.

o daftar strtok(string str, tali pemisah)
Mengembalikan daftar yang berisi semua substring dari str dipisahkan oleh satu atau lebih
(berturut-turut) karakter dalam pemisah. Misalnya, strtok("halo dunia+icmake", " +")
mengembalikan daftar yang berisi tiga string "Halo", "icmake's", dan "dunia".

o tali strup(string s)
Mengembalikan duplikat huruf besar dari s.

o tali substr(string teks, int mengimbangi, int menghitung)
Mengembalikan substring dari teks, mulai dari mengimbangi, yang terdiri dari menghitung karakter. Jika
mengimbangi melebihi (atau sama dengan) ukuran string atau jika menghitung <= 0, lalu string kosong
dikembalikan. Jika mengimbangi kurang dari 0 maka 0 digunakan.

o int sistem (string perintah)
Laksanakan Command. Nilai kembalian menunjukkan nilai keluar dari perintah yang dieksekusi. NS
tali Command mungkin berisi pengalihan dan/atau karakter pemipaan.

o int sistem (dalam memeriksa, tali perintah)
Fungsionalitas yang sama dengan fungsi sebelumnya, tetapi dengan menentukan memeriksa as
TIDAK DIPERIKSA fungsi tidak akan menghentikan skrip. Sebaliknya, itu akan mengembalikan
disebut status keluar perintah, atau 0x7f00 jika perintah tidak ditemukan.

o tali potong (tali s)
Mengembalikan salinan s tanpa spasi awal dan akhir.

o tali trimkiri(string str)
Mengembalikan salinan s tanpa memimpin spasi putih.

o tali potong (tali s)
Mengembalikan salinan s tanpa meninggalkan spasi putih.

PENGGUNA DEFINISI FUNGSI


membatalkan utama

ikmake skrip harus dilengkapi dengan fungsi yang ditentukan pengguna utama. Fungsinya utama memiliki
tiga parameter opsional, yang dapat dihilangkan dari yang terakhir (envp) ke yang pertama
(argumen), seperti di C. Prototipe lengkapnya adalah (catatan: membatalkan jenis pengembalian):

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

In utama(),

o argumen menyatakan jumlah elemen dalam argumen;

o argumen berisi argumen, dengan elemen 0 sama dengan nama .bim
mengajukan;

o envp berisi variabel `lingkungan'. Fungsinya mendengarkan dapat digunakan untuk
tentukan jumlah elemennya Elemen dalam envp memiliki bentuk
variabel=nilai. Atau, fungsi getenv dapat digunakan untuk mengambil
variabel lingkungan tertentu segera. Contoh:

void main(int argc, daftar argv)
{
daftar untuk Kompilasi;
ke dalam idx;

jika (argc == 1)
penggunaan(elemen(0, argv));

if (toCompile = diubah("*.cc"))
{
untuk (idx = panjang(toCompile); idx--; )
kompilasi(elemen(idx, toCompile));

if (getenv("dryrun")[0] == "0")
menghubungkan(elemen(2, argv));
}
}

Setelah menginisialisasi semua variabel global dalam urutan definisinya utama disebut oleh
membuatsistem pendukung run-time untuk melakukan tugas tambahan.

Selain itu didefinisikan pemakai fungsi

Fungsi tambahan dapat ditentukan. Setelah didefinisikan, fungsi-fungsi ini dapat dipanggil. Maju
referensi variabel atau fungsi tidak didukung, tetapi memanggil secara rekursif
fungsi adalah. Karena deklarasi fungsi tidak didukung, rekursi tidak langsung tidak
didukung baik.

Fungsi yang ditentukan pengguna harus memiliki elemen berikut:

o Tipe pengembalian fungsi, yang harus salah satu dari ruang kosong, ke dalam, tali or daftar. Sana
bukan tipe default.

o Nama fungsi, mis. menyusun.

o Daftar parameter, mendefinisikan nol atau lebih parameter yang dipisahkan koma. Parameternya
sendiri terdiri dari nama tipe (ke dalam, tali, atau daftar) diikuti oleh
pengenal parameter. Misalnya, (rangkaian file keluar, tali sumber).

Hai A tubuh dikelilingi oleh sepasang kurung kurawal ({ dan }).

Badan fungsi dapat berisi definisi variabel (diinisialisasi secara opsional). Variabel
definisi dimulai dengan nama jenis, diikuti oleh satu atau lebih dipisahkan koma (opsional
diinisialisasi) pengidentifikasi variabel. Jika suatu variabel tidak diinisialisasi secara eksplisit, itu adalah
diinisialisasi secara default. Secara default dan int variabel diinisialisasi ke 0, a tali is
diinisialisasi ke string kosong ("") Dan daftar diinisialisasi ke daftar elemen nol.

Selain definisi variabel, badan dapat berisi nol atau lebih pernyataan (lih.
bagian FLOW PENGENDALIAN). Perhatikan bahwa variabel dapat didefinisikan (dan secara opsional diinisialisasi)
di mana saja di dalam fungsi, dan juga di jika, untuk dan sementara pernyataan.

Perilaku membuat-skrip menggunakan fungsi non-void yang tidak mengembalikan nilai bukan
didefinisikan.

Gunakan icmake online menggunakan layanan onworks.net


Server & Workstation Gratis

Unduh aplikasi Windows & Linux

Perintah Linux

Ad