ਲੀਨਕਸ ਕਮਾਂਡ - execv ਸਿੱਖੋ

execl, execlp, execle, execv, execvp - ਇੱਕ ਫਾਇਲ ਨੂੰ ਚਲਾਓ

ਸੰਖੇਪ

#include

extern char ** environ;

int execl (const char * path , const char * arg , ...);
int execlp (const char * ਫਾਇਲ , const char * arg , ...);
int execle (const char * ਪਾਥ , const char * arg , ..., ਚਾਰ * ਕੰਨਿ ਐੱਨ ਜੀਪੀ []);
int execv (const char * path , char * const argv []);
int execvp (const char * ਫਾਇਲ , char * const argv []);

Exec ਫੰਕਸ਼ਨ ਦਾ ਵੇਰਵਾ

ਫੰਕਸ਼ਨਾਂ ਦਾ exec ਪਰਿਵਾਰ ਨਵੀਂ ਪ੍ਰਕਿਰਿਆ ਚਿੱਤਰ ਦੇ ਨਾਲ ਮੌਜੂਦਾ ਪ੍ਰਕਿਰਿਆ ਚਿੱਤਰ ਨੂੰ ਬਦਲ ਦਿੰਦਾ ਹੈ. ਇਸ ਦਸਤਾਵੇਜ਼ ਪੇਜ ਵਿੱਚ ਵਰਣਨ ਕੀਤੇ ਫੰਕਸ਼ਨ ਫੰਕਸ਼ਨ ਐਕਸੇਵ (2) ਦੇ ਫਰੰਟ-ਐਂਡ ਹਨ. (ਮੌਜੂਦਾ ਪ੍ਰਕਿਰਿਆ ਦੇ ਬਦਲੇ ਜਾਣ ਬਾਰੇ ਵਿਸਤ੍ਰਿਤ ਜਾਣਕਾਰੀ ਲਈ execve ਲਈ ਦਸਤੀ ਪੇਜ਼ ਵੇਖੋ.)

ਇਹਨਾਂ ਫੰਕਸ਼ਨਾਂ ਲਈ ਸ਼ੁਰੂਆਤੀ ਆਰਗੂਮੈਂਟ ਇੱਕ ਫਾਇਲ ਦਾ ਮਾਰਗ ਨਾਂ ਹੈ ਜੋ ਕਿ ਚਲਾਇਆ ਜਾਣਾ ਹੈ.

Execl , execlp , ਅਤੇ execle ਫੰਕਸ਼ਨਾਂ ਵਿਚ const char * arg ਅਤੇ ਬਾਅਦ ਵਾਲੇ ਏਲੀਪੇਸ਼ੀਆਂ ਨੂੰ ਆਰਗ 0 , ਆਰਜੀ 1 , ..., ਅਰਗਨ ਦੇ ਤੌਰ ਤੇ ਸਮਝਿਆ ਜਾ ਸਕਦਾ ਹੈ. ਇਕੱਠੇ ਮਿਲ ਕੇ ਉਹ ਇਕ ਜਾਂ ਵਧੇਰੇ ਪੁਆਇੰਟਰਾਂ ਦੀ ਸੂਚੀ ਦਾ ਵਰਣਨ ਕਰਦੇ ਹਨ, ਜੋ ਕਿ ਨਿਕਲੇ ਸਟਰਿੰਗ ਸਤਰ ਲਈ ਹਨ, ਜੋ ਕਿ ਚਲਾਏ ਗਏ ਪ੍ਰੋਗਰਾਮ ਲਈ ਉਪਲੱਬਧ ਆਰਗੂਮੈਂਟ ਸੂਚੀ ਦਾ ਪ੍ਰਤੀਨਿਧ ਕਰਦਾ ਹੈ. ਕਨਵੈਨਸ਼ਨ ਦੁਆਰਾ ਪਹਿਲਾ ਆਰਗੂਮੈਂਟ, ਫਾਈਲ ਨੂੰ ਚਲਾਉਣ ਵਾਲੀ ਫਾਈਲ ਨਾਮ ਤੇ ਨਿਰਭਰ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ. ਆਰਗੂਮੈਂਟ ਦੀ ਸੂਚੀ ਨੂੰ ਇੱਕ NULL ਪੁਨਰ ਸੂਚਕ ਦੁਆਰਾ ਸਮਾਪਤ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ.

Execv ਅਤੇ execvp ਫੰਕਸ਼ਨ ਪੁਆਇੰਟਰਾਂ ਦੀ ਇੱਕ ਐਰਰ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ ਜੋ ਕਿ ਨਲ- ਟਰਮਿਨਡ ਸਤਰਾਂ ਹਨ ਜੋ ਨਵੇਂ ਪ੍ਰੋਗਰਾਮ ਲਈ ਉਪਲੱਬਧ ਆਰਗੂਮੈਂਟ ਦੀ ਸੂਚੀ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ. ਕਨਵੈਨਸ਼ਨ ਦੁਆਰਾ ਪਹਿਲਾ ਆਰਗੂਮੈਂਟ, ਫਾਈਲ ਨੂੰ ਚਲਾਉਣ ਵਾਲੀ ਫਾਈਲ ਨਾਮ ਤੇ ਨਿਰਭਰ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ. ਪੁਆਇੰਟਰਾਂ ਦੀ ਲੜੀ ਨੂੰ ਇੱਕ ਨੁੱਲ ਸੰਕੇਤਕ ਦੁਆਰਾ ਖਤਮ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ.

Execle ਫੰਕਸ਼ਨ NULL ਪੁਆਇੰਟਰ ਦੀ ਪਾਲਣਾ ਕਰਕੇ ਲਾਗੂ ਕੀਤੀ ਪ੍ਰਕਿਰਿਆ ਦੇ ਵਾਤਾਵਰਨ ਨੂੰ ਵੀ ਨਿਰਧਾਰਿਤ ਕਰਦਾ ਹੈ ਜੋ ਪੈਰਾਮੀਟਰ ਸੂਚੀ ਵਿਚ ਆਰਗੂਮੈਂਟਾਂ ਦੀ ਸੂਚੀ ਨੂੰ ਬੰਦ ਕਰਦਾ ਹੈ ਜਾਂ ਵਾਧੂ ਪੈਰਾਮੀਟਰ ਨਾਲ ਆਰਗੂਵ ਐਰੇ ਨੂੰ ਪੁਆਇੰਟਰ ਦਿੰਦਾ ਹੈ. ਇਹ ਅਤਿਰਿਕਤ ਪੈਰਾਮੀਟਰ ਬੇਤਰਤੀਬ ਕੀਤੇ ਸਤਰਾਂ ਲਈ ਪੁਆਇੰਟਰਾਂ ਦੀ ਇੱਕ ਐਰੇ ਹੈ ਅਤੇ ਇੱਕ NULL ਪੁਨਰ ਸੂਚਕ ਦੁਆਰਾ ਸਮਾਪਤ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ. ਦੂਜੀ ਫੰਕਸ਼ਨ ਮੌਜੂਦਾ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਬਾਹਰੀ ਪਰਿਵਰਤਨਸ਼ੀਲ ਵਾਤਾਵਰਣ ਤੋਂ ਨਵੀਂ ਪ੍ਰਕਿਰਿਆ ਪ੍ਰਤੀਬਿੰਬ ਲਈ ਵਾਤਾਵਰਨ ਲੈਂਦੇ ਹਨ.

ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੁਝ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਵਿਸ਼ੇਸ਼ ਸੀਮੈਂਟਿਕ ਹੁੰਦੇ ਹਨ.

ਫੰਕਸ਼ਨ ਐਕਸੈੱਲਪ ਅਤੇ execvp ਇੱਕ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਫਾਈਲ ਲਈ ਖੋਜ ਵਿੱਚ ਸ਼ੈੱਲ ਦੀਆਂ ਕਿਰਿਆਵਾਂ ਦੀ ਨਕਲ ਦੇਵੇਗੀ ਜੇਕਰ ਨਿਰਦਿਸ਼ਟ ਫਾਈਲ ਨਾਮ ਵਿੱਚ ਸਲੈਸ਼ (/) ਅੱਖਰ ਨਹੀਂ ਹੁੰਦਾ. ਖੋਜ ਮਾਰਗ ਇੱਕ ਪਥ ਹੈ ਜੋ ਵਾਤਾਵਰਨ ਵਿੱਚ ਪਾਥ ਵੇਰੀਏਬਲ ਦੁਆਰਾ ਨਿਸ਼ਚਿਤ ਕੀਤਾ ਗਿਆ ਹੈ. ਜੇਕਰ ਇਹ ਵੇਰੀਏਬਲ ਨਿਸ਼ਚਿਤ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ, ਤਾਂ ਡਿਫੌਲਟ ਮਾਰਗ ``: / bin: / usr / bin 'ਵਰਤਿਆ ਗਿਆ ਹੈ. ਇਸ ਤੋਂ ਇਲਾਵਾ, ਕੁਝ ਗਲਤੀਆਂ ਵਿਸ਼ੇਸ਼ ਤੌਰ ਤੇ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ

ਜੇ ਇੱਕ ਫਾਇਲ ਲਈ ਇਜਾਜ਼ਤ ਦੇਣ ਤੋਂ ਮਨ੍ਹਾ ਕੀਤਾ ਗਿਆ ਹੈ (ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਗਈ execver EACCES ਵਾਪਸ ਆਇਆ ), ਇਹ ਫੰਕਸ਼ਨ ਬਾਕੀ ਦੇ ਖੋਜ ਮਾਰਗ 'ਤੇ ਖੋਜ ਜਾਰੀ ਰਹੇਗੀ. ਜੇ ਕੋਈ ਹੋਰ ਫਾਈਲ ਨਹੀਂ ਲੱਭੀ ਹੈ, ਹਾਲਾਂਕਿ, ਉਹ ਗਲੋਬਲ ਵੇਰੀਬਲ ਗੁਮਨਾਮ ਨਾਲ EACCES ਤੇ ਵਾਪਸ ਆ ਜਾਣਗੇ.

ਜੇ ਫਾਇਲ ਦਾ ਸਿਰਲੇਖ ਪਛਾਣੀ ਨਹੀਂ ਗਈ (ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਗਈ execve ENOEXEC ਵਾਪਸ ਆਇਆ ਹੈ ), ਇਹ ਫੰਕਸ਼ਨ ਸ਼ੈੱਲ ਨੂੰ ਫਾਇਲ ਦੇ ਮਾਰਗ ਦੇ ਨਾਲ ਆਪਣੀ ਪਹਿਲੀ ਆਰਗੂਮੈਂਟ ਦੇ ਤੌਰ ਤੇ ਚਲਾਏਗਾ. (ਜੇਕਰ ਇਹ ਕੋਸ਼ਿਸ਼ ਅਸਫਲ ਹੋ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਕੋਈ ਹੋਰ ਖੋਜ ਨਹੀਂ ਕੀਤੀ ਜਾਂਦੀ.)

Exec ਫੰਕਸ਼ਨ ਦੀ ਵੈਲਯੂ ਵਾਪਸ ਕਰੋ

ਜੇ ਕੋਈ exec ਫੰਕਸ਼ਨ ਵਾਪਿਸ ਆਇਆ ਹੈ, ਤਾਂ ਕੋਈ ਗਲਤੀ ਆਵੇਗੀ. ਰਿਟਰਨ ਵੈਲਯੂ -1 ਹੈ, ਅਤੇ ਗਲੋਬਲ ਵੇਰੀਏਬਲ ਇਰਾਨੋ ਗਲਤੀ ਨੂੰ ਦਰਸਾਉਣ ਲਈ ਸੈੱਟ ਕੀਤਾ ਜਾਵੇਗਾ.