- A hozzászóláshoz be kell jelentkezni
- 2018 megtekintés
Hozzászólások
Mi baj a GNU sorttal?
- A hozzászóláshoz be kell jelentkezni
Szerintem hogy nem BSDL-es.
- A hozzászóláshoz be kell jelentkezni
erdekes, engem nem zavar
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
Engem sem :)
- A hozzászóláshoz be kell jelentkezni
hogy GNU...
- A hozzászóláshoz be kell jelentkezni
A GNU az új Windows.
Fuszenecker_Róbert
- A hozzászóláshoz be kell jelentkezni
Legutóbb valamiért szóba került a /bin/true, és ráguglizva előjöttek ilyen fonalak, hogy xy Unixon csak egy shell script és hogy ez milyen humoros, amikor nem is nyílt forrású.
Erre jött a ráadás: a GNU /bin/true, ami ahhoz képest, hogy csak egy 0-t kéne visszaadnia, egy paraméterkezelőt is tartalmaz, hogy a --help és a --version működjön :D
----
India delenda est.
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
Erre jött a ráadás: a GNU /bin/true, ami ahhoz képest, hogy csak egy 0-t kéne visszaadnia, egy paraméterkezelőt is tartalmaz, hogy a --help és a --version működjön :D
Na jó, de csak ez csak egy getopt hívás, ami osztott könyvtárban van (majdnem mindig), szóval ez nem túl nagy gond.
- A hozzászóláshoz be kell jelentkezni
Csak felesleges, es serti a KISS elvet.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
GNU is not Unix.
- A hozzászóláshoz be kell jelentkezni
But what _is_ the GNU? :-)
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
A KISS elve meg sok esetben serti a kenyelem es hasznalhatosag elvet (ok, /bin/true eseteben a --version es a --help pont nem hasznos; de mondjuk egy ls path -l ha nem mukodik, akkor falra maszom, pedig a KISS elvet koveti.)
--
|8]
- A hozzászóláshoz be kell jelentkezni
Pedig Unixon nem mukod.
Egyebkent az ls engem is irrital, pedig nem kunszt parameterezest irni - csak mindenki lusta ra, igy inkabb rafogjak a POSIX szabvanyra.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Ahhoz képest, hogy
int main()
{ }
minden túlbonyolításnak tűnik. Ráadásul egy függvényhívás jóval drágább, mint akár egy NOP, és a getopt nem egy "egyszerű" függvény, egész komoly paramétereket kell neki odaadni.
----
India delenda est.
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
Helyesen:
int main(int argc, char **argv) {
return 0;
}
Azert bizonyos szabvanyokat illik betartani.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
A main() argumentumok nem hasznaltak, -Wall -Wextra -val sirni fog a compiler. Es igazabol teljesen feleslegesek is, ha nem hasznalja oket az ember. ;)
--
|8]
- A hozzászóláshoz be kell jelentkezni
A return mindenkepp kell, mert nelkule tuti siras van, szoval ez valami szabvanynak biztos resze.
A main fuggvenynek pedig azert szoktam megadni ezeket, mert ez a hivatalos szignaturaja, gondot nem csinal, ha kovetem az eloirt szignaturat.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
A returnrol nem szoltam, a hivatalos szignatura pedig az int main()-t is megengedi legjobb tudomasom szerint.
--
|8]
- A hozzászóláshoz be kell jelentkezni
Ha már okoskodsz, legalább néznéd meg azokat a bizonyos szabványokat. Se a paraméterek, se a return 0 nem kell.
----
India delenda est.
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
A return nelkul tuti sir a compiler -Wall mellett. Szoval kell az. A tobbire reagaltam fentebb.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Sir a compiler != szabványban van. A compiler az unused variable miatt is sír.
Többi: arról volt szó, hogy a lehető legegyszerűbb példa. Ha kiírod a paramétereket, egy rosszabb fordító esetleg még fel is tölti őket neked, hiába nem használod. Azzal, hogy ki sem írod, jelzed, hogy nem kívánod őket használni.
Szóval maradjunk annyiban, hogy azint main() {} tökéletesen szabványos, és A minimalista példa.
----
India delenda est.
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
Hol van definilva , hogy mi az int ertke return nelkul ?
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
Feltételezve, hogy az "int ertke" alatt a visszatérési értékre gondolsz, akkor visszautalok amiről egész eddig beszéltünk: a szabványban. RTFS
----
India delenda est.
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
C99 elott nem volt definialva C-ben. C++ -ban bene volt valoszinuleg a kezdetekkor.
Nem veletlenul kerdeztem a holt.
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
Tehát, feltételezve, hogy nem több évtizedes rendszert használsz, kijelenthetjük, hogy a releváns szabványban szerepel.
----
India delenda est.
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
Es az melyik? Mert ugye C-rol beszelgetunk, nem C++ -rol. A ketto akkor sem egy nyelv, ha sok az atfedes.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
A main()
szignaturajat illetoen mind C89 mind C99 megengedi az int main(void)
-ot, a return 0
-t illetoen C89 megkoveteli a return-t, C99 szerint ha nincs return, akkor az egy implicit return 0
.
Szoval hacsak nem tobb evtizedes szabvanyt nezel, akkor ez teljesen valid C:
int main(void) {}
Sot, void nelkul is valid, csak picit mast jelent. (void: argumentumok nem lehetnek; void nelkul: lehetnek, de leszarom oket)
--
|8]
- A hozzászóláshoz be kell jelentkezni
Na ez volt az, amire igazabol kivancsi voltam. Hat, megint tanultam valamit.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Egyrészt lásd algernon, másrészt
"Mert ugye C-rol beszelgetunk,"
Ez honnan jött? A bedobott kódról én nem mondtam, hogy milyen nyelven van.
----
India delenda est.
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
De nem is sugalltad, hogy C++. Illetve konkret valaszt sem adtal a kerdesre. Relevans szabvany van tobb is, a kerdes meg pont az volt, hogy _melyik_ szabvanyban, nem pedig az, hogy ugy nagy altalanossagban hol. Nyilvan az ember ilyesmit nem a Bibliaban keres :-)
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Akkor csak figyelmetlen voltál a szálban: egyrészt http://hup.hu/cikkek/20121008/hamarosan_eltavolitasra_kerul_a_gnu_sort_… másrészt arról volt szó, hogy "ha nem több évtizedes rendszer", tehát értelemszerűen a C99, C++03-as szabványokról van szó, és bármelyikben így szerepel, tehát nem kell eldönteni, hogy melyik.
Természetesen ha C kódként akarod fordítani, akkor szebb a main(void), és pl utalt rá, hogy C++-ról van szó, de nem kell kikötni, C-ben is tökéletesen jól megy.
----
India delenda est.
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
Ehm... pedig ezt a topicot meg olvastam is... silly me. Mentsegemre legyen mondva, nem fejlesztek napi/ketnapi szinten C-ben, sot, ha lehet pont olyan nagy ivben kerulom, mint a C betue.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Egy shell builtinhez képest minden túlbonyolításnak tűnik. Ráadásul egy fork-exec jóval drágább, mint akár egy függvényhívás, és a fork() és exec() nem egy "egyszerű" függvény, egész komoly dolgokat kell neki csinálni.
;)
- A hozzászóláshoz be kell jelentkezni
A shell builtinnel vigyazz, vannak olyan dolgok, amik nem tudnak maguk felett egy shell-t.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Mintpéldául?
- A hozzászóláshoz be kell jelentkezni
Pl. akarmilyen daemon. Azt nem feltetlen shell inditja, hanem egy /sbin/init - ott meg nincsenek builtinek. Es azok az exec muveletek a legolcsobbak, ahol nem kell shell-t felloni a parancs(ok) vegrehajtasahoz.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Egy daemonnak mi szüksége lenne a true parancsra?
- A hozzászóláshoz be kell jelentkezni
Pl. van egy daemon, ami különböző események hatására képes külső parancsot meghívni, és konfigból állítható, hogy mikor mit hívjon meg. Ezután a hívás visszatérési értékétől függően fut tovább. A daemon konfigurálása során valaki úgy dönt, hogy tesztelési célból az egyik külső parancsot a /bin/true-ra állítja, hogy megvizsgálhassa, hogy a daemon a megfelelő módon fut-e tovább, ha az adott eseménykor lefutó script 0-val tért vissza.
- A hozzászóláshoz be kell jelentkezni
De ez esetben miért kellene nekem egy shell builtin miatt vigyáznom?
- A hozzászóláshoz be kell jelentkezni
Ebből poliverzum regényt fog írni.
- A hozzászóláshoz be kell jelentkezni