Linux આદેશ જાણો - execl

નામ: execl, execlp, execle, execv, execvp - ફાઈલ ચલાવો

સારાંશ

# સમાવેશ

એક્સ્ટર્ન ચારે ** પર્યાય;

પૂર્ણાંક execl (const char * path , const char * arg , ...);
પૂર્ણાંક એક્સક્લેપ (કન્ઝર્વેચર્ડ * ફાઇલ , કન્ઝર્વેટ * એઆરજી , ...);
પૂર્ણાંક શબ્દ (const char * પાથ , const char * arg , ..., char * const envp []);
પૂર્ણાંક execv (const char * path , char * const argv []);
પૂર્ણાંક execvp (const char * ફાઇલ , char * const argv []);

વર્ણન

વિધેયોનું exec કુટુંબ નવી પ્રક્રિયા છબી સાથે વર્તમાન પ્રક્રિયા છબીને બદલે છે. આ માર્ગદર્શિકા પાનાંમાં વર્ણવેલ કાર્યો ફંક્શન execve (2) માટે આગળના અંત છે. આ ફંક્શનો માટે પ્રારંભિક દલીલ એક ફાઇલનું પાથનુ નામ છે જે ચલાવવાનું છે.

એક્ઝેક , એક્સએક્લપ અને એક્ઝેલ વિધેયોમાં કર્નલ ચાર * એજી અને અનુગામી ellipses arg0 , arg1 , ..., argn તરીકે વિચારી શકાય છે. એકસાથે તે એક અથવા વધુ પોઇન્ટરની યાદીને નલ-ટર્મિનેટેડ સ્ટ્રીંગ્સનું વર્ણન કરે છે જે એક્ઝિક્યુટ પ્રોગ્રામ માટે ઉપલબ્ધ દલીલ સૂચિનું પ્રતિનિધિત્વ કરે છે. પહેલી દલીલ, સંમેલન દ્વારા, ફાઈલ ચલાવવાની સાથે સંકળાયેલ ફાઇલ નામ પર નિર્દેશ આપવી જોઈએ. દલીલોની સૂચિને NULL નિર્દેશક દ્વારા સમાપ્ત થવી જોઈએ.

Execv અને execvp વિધેયો એ નલ-ટર્મિનેટેડ સ્ટ્રીંગ્સ માટે પોઇન્ટરની એક એરે પૂરી પાડે છે જે નવા પ્રોગ્રામ માટે ઉપલબ્ધ દલીલ સૂચિને રજૂ કરે છે. પહેલી દલીલ, સંમેલન દ્વારા, ફાઈલ ચલાવવાની સાથે સંકળાયેલ ફાઇલ નામ પર નિર્દેશ આપવી જોઈએ. પોઇન્ટરની એરેને નુલ પોઇન્ટર દ્વારા સમાપ્ત કરવું જોઈએ.

એક્ઝકલ કાર્ય એ NULL પોઇન્ટરનો અનુસરણ કરીને ચલાવવામાં આવેલી પ્રક્રિયાના પર્યાવરણને પણ સ્પષ્ટ કરે છે જે પરિમાણ યાદીમાં દલીલોની યાદીને સમાપ્ત કરે છે અથવા વધારાના પરિમાણ સાથે argv એરેમાં નિર્દેશક છે. આ અતિરિક્ત પરિમાણ એ નલ-ટર્મિનેટેડ શબ્દમાળાઓ માટે પોઇન્ટરની ઝાકઝમાળ છે અને તેને નુલ પોઇન્ટર દ્વારા સમાપ્ત કરવું જોઈએ. અન્ય કાર્યો વર્તમાન પ્રક્રિયામાં બાહ્ય ચલ એન્વાયરના નવી પ્રક્રિયા છબી માટે પર્યાવરણ લે છે.

આમાંના કેટલાક વિધેયોમાં ખાસ સીમેન્ટિક્સ છે.

વિધેયો execlp અને execvp એક્ઝેક્યુટેબલ ફાઇલ માટે શોધમાં શેલની ક્રિયાઓનું ડુપ્લિકેટ કરશે જો ચોક્કસ ફાઇલ નામમાં સ્લેશ (/) અક્ષર ન હોય તો PATH ચલ દ્વારા પર્યાવરણમાં સ્પષ્ટ પાથ શોધ પથ છે જો આ ચલ નિર્દિષ્ટ નથી, તો ડિફૉલ્ટ પાથ ``: / bin: / usr / bin '' નો ઉપયોગ કરવામાં આવે છે. વધુમાં, કેટલીક ભૂલો ખાસ રીતે કરવામાં આવે છે.

જો ફાઇલ માટે પરવાનગી નકારી છે (પ્રયાસ કર્યો execve EACCES પરત ફર્યા છે), આ વિધેયો બાકીના શોધ પાથ શોધ ચાલુ રહેશે. જો બીજી કોઈ ફાઇલ મળી ન હોય, તોપણ, તેઓ વૈશ્વિક વેરિયેબલ ભૂલ સાથે EACCES માં પાછા આવશે.

જો ફાઈલનો હેડર ઓળખાય ન હોય (પ્રયાસ કર્યો એક્ઝવે પાછો ફર્યો ENOEXEC ), તો આ કાર્ય શેલને ફાઈલના પાથ સાથે તેના પ્રથમ દલીલ તરીકે ચલાવશે. (જો આ પ્રયાસ નિષ્ફળ જાય, તો વધુ શોધ કરવામાં આવતી નથી.)

રીટર્ન વેલ્યુ

જો એક્ઝેક ફંક્શન્સ કોઇ પણ આપે છે, તો ભૂલ આવી હશે. રીટર્ન વેલ્યુ -1 છે, અને ગ્લોબલ વેરિયેબલ ઇરૉને ભૂલ સૂચવવા માટે સેટ કરવામાં આવશે.