Portál AbcLinuxu, 6. května 2025 04:17
Jevgenij Poljakov z vývojářů, kteří by se nechali snadno odradit.V téhle větě pravděpodobně chybí sloveso.
(Prosím, abyste na můj OT příspěvek nereagovali.)Když jsi položil otázku, dostaneš odpověď. Pokud jsi tak toužil po tom, aby ti nikdo neodpovídal, neměl ses ptát. Ano, je to nutné.
Prosím, je opravdu nutné psát informace o překlepech do diskuze? Nebylo by vhodnější kontaktovat autora e-mailem? Vždyť takový příspěvek v diskuzi nemá žádného smyslu.A je opravdu nutné, aby se takovýhle příspěvek (jako ten váš) objevil pod každým druhým článkem? Vždy s jediným argumentem – "mne to nezajímá".
Prosím, abyste na můj OT příspěvek nereagovali.Příspěvek týkající se komentovaného článku vám vadí, a sám napíšete příspěvek, který se článku netýká vůbec? To mi připadá přinejmenším podivné.
vi
, ale kvůli tomu, že je hluboce pomýlený.
vi
, ta mi nevadí. Vadí mi část o rm
a zpracování příkazové řádky, protože ta svědčí o tom, že autor toho příspěvku kritizuje něco, čemu nerozumí, jen proto, že tomu nerozumí.
Jak vidno z té diskuse, není to chyba principu, ale implementace… Mimochodem, než někdo začne tvrdit, že v současných Linuxech je problém smazat přes wildcard 10000 souborů, měl by si aspoň zkusit
mkdir x ; cd x touch {0..9}{0..9}{0..9}{0..9} rm * && echo OK
aby zjistil, že měl tu konstantu zvolit větší…
touch abcdefgh{0..9}{0..9}{0..9}{0..9}
$ touch abcdefgh{0..9}{0..9}{0..9}{0..9} $ rm abcdefgh* $ echo $? 0 $nemalo to byt este o nieco dlhsie?
$ touch abcdefgh{0..9}{0..9}{0..9}{0..9} -bash: /usr/bin/touch: Argument list too long $ getconf ARG_MAX 131072
$ touch abcdefgh{0..9}{0..9}{0..9}{0..9} $ touch abcdefghi{0..9}{0..9}{0..9}{0..9} zsh: argument list too long: touch $ getconf ARG_MAX 131072 $zazrak!
$ touch abcdefgh{0..9}{0..9}{0..9}{0..9} bash: /usr/bin/touch: Argument list too long
\0
do dĺžky reťazca ? char *
' už třeba ne…
char* argv[]
' v paměti uloženo.
nemyslim si, ze sa tam musia zmestit pointery, argv je obycajne pole pointerov na char* a da sa teda velmi jenoducho dopocitat z jedineho pointeru na samotny blok pamate (o velkosti ARG_MAX)
To by mne zajímalo jak. Musel byste dát nějaký horní limit na velikost jednoho parametru a jednotlivé řetězce ukládat s příslušným odstupem. Pokud by byl ten limit dostatečně velký, aby neomezoval reálnou použitelnost systému, byl by takový způsob uložení ještě výrazně neefektivnější než ten, který se skutečně používá (samostatné pole pointerů).
A také by mne zajímalo, jak byste bez toho pole pointerů chtěl zajistit, že bude fungovat klasické
while (argc > 0) { ... argc--; argv++; }
argv++
. Vzhledem k tomu, jak funguje pointerová aritmetika, tam to pole pointerů prostě mít musíte.
char* argv[]
' a jak se pak vyhodnocuje 'argv[n]
'.
argv[2]
': je to pointer, který najdete o 2*sizeof(char*)
dál, než začíná pole. Navíc i kdybyste nějakým zvráceným způsobem zařídil, že to bude fungovat, znamenalo by to, že časová náročnost vyhodnocení argv[n]
bude záviset na velikosti toho pole.
$ getconf ARG_MAX 131072 $ more config.sys shell=c:\dos\command.com /p /e:3000Same shit.
Alternatively, this software may be distributed under the terms of the GNU General Public License ("GPL") version 2 as published by the Free Software Foundation.
Takze ten GPL kod ako vravis nebol zobraty a nebola tam prepisana len cast o licencii...Nevím, zda rozumím správně (může to být mojí špatnou slovenštinou), ale GPL kód skončil v CVS BSD pod BSD licencí bez souhlasu autorů.
Co sa tyka Jiriho Slabeho, tak upravoval subory, ktore neboli licencovane dualne, ale len pod BSD licenciou a on si surovo dovolil odtranit licenciu a pridat GPL, to sa mi zda ako drzost.Ano. Drzost - nebo přehlédnutí, dle mého pravděpodobnější. Důvod jsem zmínil. To může ale zřejmě objasnit jen autor.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.