Mọ aṣẹ Lainos - execl

Orukọ: execl, execlp, execle, execv, execvp - ṣe faili kan

Atọkasi

Gba awọn

extern char ** nipa;

int execl (const char * ona , const char * arg , ...);
int execlp (const char * faili , const char * arg , ...);
int execle (const char * ona , const char * arg , ..., char * const envp []);
int execv (const char * ona , char * const argv []);
int execvp (const char * faili , char * const argv []);

Apejuwe

Awọn iṣẹ-iṣẹ ti o ṣẹṣẹ ti ngbe ti o tun rọpo aworan ti o wa lọwọlọwọ pẹlu aworan idanimọ tuntun. Awọn iṣẹ ti a ṣalaye ninu iwe itọnisọna yii jẹ awọn opin iwaju fun iṣẹ iṣẹ naa (2). Ibẹrẹ iṣaaju fun awọn iṣẹ wọnyi ni ọna-ọna ti faili kan ti o ni lati paṣẹ.

Awọn iyasọtọ char * arg ati awọn ellipses ti o tẹle ni execl , execlp , ati awọn iṣẹ execle le ṣee ro bi arg0 , arg1 , ..., argn . Papọ wọn ṣe apejuwe akojọ kan ti awọn aami tabi diẹ ẹ sii si awọn gbolohun ọrọ ti ko ni abawọn ti o soju akojọ akojọ ariyanjiyan si eto ti a pa. Ọrọ ariyanjiyan akọkọ, nipa adehun, yẹ ki o tọka si orukọ faili ti o ni nkan ṣe pẹlu faili ti a ṣe. Awọn akojọ awọn ariyanjiyan gbọdọ wa ni ipari nipasẹ kan alakoso NULL .

Awọn iṣẹ execv ati awọn iṣẹ execvp pese apẹrẹ awọn akọle si awọn gbolohun ọrọ ti ko ni asan ti o soju akojọ akojọ ariyanjiyan si eto tuntun. Ọrọ ariyanjiyan akọkọ, nipa adehun, yẹ ki o tọka si orukọ faili ti o ni nkan ṣe pẹlu faili ti a ṣe. Awọn orun awọn aami yẹ ki o fopin si nipasẹ alakoso NULL .

Iṣẹ išẹ naa tun n ṣalaye ayika ti ilana ti a ti pa nipasẹ titẹle alakoso NULL ti o fopin si akojọ awọn ariyanjiyan ni akojọ ašayan tabi awọn ijuboluwo si ibiti argv pẹlu paramọlẹ afikun. Atilẹba afikun yii jẹ orisii awọn ami si awọn gbolohun ọrọ ti ko ni abawọn ati pe o gbọdọ wa ni fopin si nipasẹ alakoso NULL . Awọn iṣẹ miiran mu ayika fun aworan atunṣe tuntun lati iyipada ita ti o wa ninu ilana lọwọlọwọ.

Diẹ ninu awọn iṣẹ wọnyi ni awọn semanticiki pataki.

Awọn iṣẹ execlp ati execvp yoo ṣe apẹrẹ awọn iṣẹ ti ikarahun naa ni wiwa fun faili ti o ba ṣiṣẹ nigbati orukọ faili ti a pàtó ko ni awọn kikọ slash (/). Itọnisọna wiwa ni ona ti o wa ni ayika nipasẹ iyatọ PATH . Ti a ko ba sọ iyipada yi, ọna ti a ko ni '`: / bin: / usr / bin' 'ti lo. Ni afikun, awọn aṣiṣe kan ni a ṣe itọju pataki.

Ti o ba ti ni igbanilaaye fun faili kan (igbidanwo naa ti pari EACCES pada), awọn iṣẹ wọnyi yoo tesiwaju lati wa wiwa iyọọda ọna wiwa naa. Ti ko ba si faili miiran ti o ri, sibẹsibẹ, wọn yoo pada pẹlu ernno agbaye ti a ṣeto si EACCES .

Ti a ko ba jẹ akọsori faili kan (igbidanwo ti o pada ENOEXEC ), awọn iṣẹ wọnyi yoo mu ikarahun naa ṣiṣẹ pẹlu ọna ti faili naa gẹgẹbi iṣaro ariyanjiyan akọkọ. (Ti igbiyanju yii ba kuna, ko si wiwa siwaju sii ti ṣe.)

Pada Iyipada

Ti eyikeyi ninu awọn iṣẹ iṣẹ ba pada, aṣiṣe yoo ti ṣẹlẹ. Iyipada iye ni -1, ati errno agbaye agbaye yoo ṣeto lati fihan aṣiṣe naa.