Article View: pl.comp.os.linux
Article #895526Re: 2 (chyba proste) pytania
From: Piotrek
Date: Fri, 22 Jan 2016 20:34
Date: Fri, 22 Jan 2016 20:34
22 lines
3599 bytes
3599 bytes
W dniu środa, 20 stycznia 2016 20:10:06 UTC+1 użytkownik Jan Stożek napisał: > Po głębokim namyśle Piotrek napisał w środa, 20 stycznia 2016 18:56: > > > 2) To pewnie banalne pytanie, ale jakim cudem wywołanie tego samego > > programu bezpośrednio i przez łącze symboliczne może dawać różne > > efekty? Chodzi mi konkretnie o komendy "reboot" i "poweroff". > > Pierwsza z nich restartuje komputer, a druga go wyłącza, ale jak to > > możliwe skoro /sbin/poweroff to nic innego jak łącze do > > /sbin/reboot? Skoro tak, to poweroff powinno robić dokładnie to, co > > reboot, a tak przecież nie jest. > > Program może przecież sprawdzić, jak został uruchomiony. > Jeśli dobrze zrozumiałem, działa to tak: mam przykładowy plik "myfile" (skrypt albo plik binarny) i n linków do niego: "myfile_link_1", "myfile_link_2", ... , "myfile_link_n". Gdzieś w samym "myfile" może następować sprawdzenie, jak się nazywa zerowy argument jego wywołania: przy bezpośrednim uruchomieniu będzie to "myfile", a przy uruchomieniu przez i-ty link - "myfile_link_i". Inaczej mówiąc, gdzieś w treści "myfile" (jeśli to skrypt) albo w jego kodzie źródłowym (jeśli to plik binarny) mamy z grubsza coś takiego: jeśli $0/argv[0] = "myfile", to rób coś jeśli $0/argv[0] = "myfile_link_1", to rób coś_1 ... jeśli $0/argv[0] = "myfile_link_n", to rób coś_n czyli to, co plik zrobi po uruchomieniu, może zależeć tylko od tego, przez który link zostanie uruchomiony. Mam nadzieję, że mniej więcej o to chodziło? Moje zaskoczenie wzięło się chyba stąd, że do tej pory nie wiedziałem, że przy uruchamianiu pliku przez link, jako zerowy argument wywołania brana jest nazwa linku - sądziłem, że w każdym przypadku $0/argv[0] jest inicjowana nazwą tego, do czego prowadzi link, a nie nazwą samego linku. Teraz wszystko mi się rozjaśniło. Zastanawia mnie jeszcze tylko sens stosowania takiej sztuczki - jaką to ma przewagę nad zdefiniowaniem aliasu albo wrappera, którego wywołanie jest równoznaczne z uruchomieniem aplikacji z określonymi argumentami?
Technical Details
Message-ID:
<260cc612-4a08-4d8a-94fe-cfb480a76436@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!peer03.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!6no6504305qgy.0!news-out.google.com!kr2ni6247igb.0!nntp.google.com!o2no5369046iga.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<79273069-136f-4e3d-a926-7ae633245723@googlegroups.com> <1880774.EI8GvOSqWN@pc-jasio.stozek.waw.pl>Show Full Headers
Complete Article Headers
X-Received: by 10.13.215.206 with SMTP id z197mr4831954ywd.7.1453494897257; Fri, 22 Jan 2016 12:34:57 -0800 (PST) X-Received: by 10.50.41.5 with SMTP id b5mr210348igl.8.1453494897219; Fri, 22 Jan 2016 12:34:57 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!peer03.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!6no6504305qgy.0!news-out.google.com!kr2ni6247igb.0!nntp.google.com!o2no5369046iga.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.os.linux Date: Fri, 22 Jan 2016 12:34:56 -0800 (PST) In-Reply-To: <1880774.EI8GvOSqWN@pc-jasio.stozek.waw.pl> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=62.141.248.45; posting-account=TK5l0QoAAAAldQF2560HYsPD7T6zK1l9 NNTP-Posting-Host: 62.141.248.45 References: <79273069-136f-4e3d-a926-7ae633245723@googlegroups.com> <1880774.EI8GvOSqWN@pc-jasio.stozek.waw.pl> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <260cc612-4a08-4d8a-94fe-cfb480a76436@googlegroups.com> Subject: Re: 2 (chyba proste) pytania From: Piotrek <pilarp@poczta.onet.pl> Injection-Date: Fri, 22 Jan 2016 20:34:57 +0000 X-Received-Bytes: 3475 X-Received-Body-CRC: 1460372513 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit