GNU/Linux >> Znalost Linux >  >> Linux

Co znamená P a E v Exec Family Of Calls?

l a v ve voláních exec označují, zda jsou argumenty poskytovány prostřednictvím seznamu nebo array(vector) . Někde jsem to četl, že p označuje cestu uživatele a e označují prostředí, ale nepochopili jste, co to znamená?

Přijatá odpověď:

Zkontrolujte tento odkaz na Wikipedii na funkci Exec a tento odkaz na Spuštění procesu pomocí volání exec()

e – Novému obrazu procesu je explicitně předáno pole ukazatelů na proměnné prostředí.

Verze s příponou „e“ předají programu prostředí. Prostředí
je právě to – jakýsi „kontext“, ve kterém má program
pracovat. Můžete mít například kontrolu pravopisu, která má
slovník slov. Místo zadávání umístění slovníku
pokaždé na příkazovém řádku jej můžete zadat v prostředí
:

l – Argumenty příkazového řádku jsou předány jednotlivě (seznam) funkci.

Například, pokud chci vyvolat příkaz ls s argumenty -t,
-r a -l (což znamená „seřadit výstup podle času v opačném pořadí a ukázat mi dlouhou verzi výstupu“ ), mohl bych to specifikovat jako
buď.

p – Používá proměnnou prostředí PATH k vyhledání souboru pojmenovaného v argumentu cesty, který má být proveden.

Verze s příponou „p“ prohledají adresáře ve vaší proměnné prostředí PATH
, aby nalezly spustitelný soubor. Pravděpodobně jste si všimli
, že všechny příklady mají pevně zakódované umístění pro spustitelný soubor:
/bin/ls a /usr/bin/spellcheck. A co další spustitelné soubory? Pokud
nechcete nejprve zjistit přesnou cestu k tomuto konkrétnímu programu,
by bylo nejlepší, kdyby uživatel řekl vašemu programu všechna místa, kde má
vyhledat spustitelné soubory. Standardní proměnná prostředí PATH dělá
právě to.

v – Argumenty příkazového řádku jsou předány funkci jako pole (vektor) ukazatelů.

Seznam argumentů je specifikován pomocí ukazatele na argumentový vektor.

Jak bylo zmíněno v druhé odpovědi, tento odkaz na Unix System Calls je také stejně úžasný pro další čtení.

Související:$PWD? (vs aktuální pracovní adresář)?
Linux
  1. Co dělá „lc_all=c“?

  2. Co znamená -s a [[]] ve stavu If v Bash?

  3. Point of Uniq -u a co to dělá??

  1. Co je soubor .pid a co obsahuje?

  2. Jaký je rozdíl mezi funkcemi rodiny systémových volání exec, jako je exec a execve?

  3. Co je to `S_ISREG()` a co dělá?

  1. Co je webový server a jak webový server funguje?

  2. Co označuje symbol @ na začátku cesty soketu domény unix v Linuxu?

  3. Co znamená NT_STATUS_BAD_NETWORK_NAME v Sambě?