ಲಿನಕ್ಸ್ ಕಮಾಂಡ್ ತಿಳಿಯಿರಿ - execv

execl, execlp, execle, execv, execvp - ಕಡತವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿ

ಸಾರಾಂಶ

# ಸೇರಿವೆ

ಬಾಹ್ಯ ಚಾರ್ ** ಪರಿಸರ;

ಇಂಟ್ ಎಕ್ಸಿಕ್ಲ್ (ಕಾನ್ಸ್ ಚಾರ್ * ಮಾರ್ಗ , ಕಾನ್ಸ್ ಚಾರ್ * ಆರ್ಗ್ , ...);
ಇಂಟ್ ಎಕ್ಸಿಕ್ಲಪ್ (ಕಾನ್ಸ್ ಚಾರ್ * ಫೈಲ್ , ಕಾನ್ಸ್ ಚಾರ್ * ಆರ್ಗ್ , ...);
ಇಂಟ್ ಎಕ್ಸಿಕ್ಲೆ (ಕಾನ್ಸ್ ಚಾರ್ * ಪಥ್ , ಕಾನ್ಟ್ ಚಾರ್ * ಆರ್ಗ್ , ..., ಚಾರ್ * ಕಾಂಟ್ ಎನ್ವಿಪಿ []);
ಇಂಟ್ ಎಕ್ಸೆಕ್ವ್ (ಕಾನ್ಸ್ ಚಾರ್ * ಪಥ್ , ಚಾರ್ * ಕಾಂಟ್ ಆರ್ಗ್ವೆವ್ []);
ಇಂಟ್ ಎಕ್ಸೆಕ್ವಿಪಿ (ಕಾನ್ಸ್ ಚಾರ್ * ಫೈಲ್ , ಚಾರ್ * ಕಾಂಟ್ ಆರ್ಗ್ವಿವ್ []);

Exec ಕಾರ್ಯಗಳ ವಿವರಣೆ

ಕಾರ್ಯಗಳ exec ಕುಟುಂಬವು ಹೊಸ ಪ್ರಕ್ರಿಯೆಯ ಚಿತ್ರಣದೊಂದಿಗೆ ಪ್ರಸ್ತುತ ಪ್ರಕ್ರಿಯೆಯ ಚಿತ್ರಣವನ್ನು ಬದಲಿಸುತ್ತದೆ. ಈ ಕೈಪಿಡಿ ಪುಟದಲ್ಲಿ ವಿವರಿಸಿದ ಕಾರ್ಯಗಳು ಫಂಕ್ಷನ್ ಎಕ್ಸೆವ್ (2) ಗಾಗಿ ಮುಂಭಾಗದ ತುದಿಗಳಾಗಿವೆ. (ಪ್ರಸಕ್ತ ಪ್ರಕ್ರಿಯೆಯ ಬದಲಿ ಕುರಿತು ವಿವರವಾದ ಮಾಹಿತಿಗಾಗಿ ಎಕ್ಸ್ಕ್ವೆವ್ಗಾಗಿ ಕೈಪಿಡಿ ಪುಟವನ್ನು ನೋಡಿ.)

ಈ ಕ್ರಿಯೆಗಳಿಗೆ ಆರಂಭಿಕ ಆರ್ಗ್ಯುಮೆಂಟ್ ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕಾದ ಫೈಲ್ನ ಪಥನಾಮವಾಗಿದೆ.

ಎಕ್ಸಿಕ್ಲ್ , ಎಕ್ಸೆಕ್ಲಿಪ್ ಮತ್ತು ಎಕ್ಸೆಕ್ ಕಾರ್ಯಗಳಲ್ಲಿ ಕಾಂಟ್ ಚಾರ್ * ಆರ್ಗ್ ಮತ್ತು ನಂತರದ ದೀರ್ಘವೃತ್ತಗಳು arg0 , arg1 , ..., argn ಎಂದು ತಿಳಿಯಬಹುದು . ಒಟ್ಟಿಗೆ ಅವರು ಒಂದು ಅಥವಾ ಹೆಚ್ಚು ಪಾಯಿಂಟರ್ಗಳ ಪಟ್ಟಿಯನ್ನು ಶೂನ್ಯ-ಮುಕ್ತಾಯದ ತಂತಿಗಳಿಗೆ ವಿವರಿಸುತ್ತಾರೆ, ಅದು ಕಾರ್ಯಗತಗೊಳಿಸಿದ ಪ್ರೋಗ್ರಾಂಗೆ ಲಭ್ಯವಿರುವ ವಾದದ ಪಟ್ಟಿಯನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ. ಮೊದಲ ಆರ್ಗ್ಯುಮೆಂಟ್, ಸಂಪ್ರದಾಯದಂತೆ, ಕಾರ್ಯಗತಗೊಳಿಸಲ್ಪಡುವ ಕಡತದೊಂದಿಗೆ ಸಂಬಂಧಿಸಿದ ಫೈಲ್ ಹೆಸರನ್ನು ಸೂಚಿಸಬೇಕು. ವಾದಗಳ ಪಟ್ಟಿಯನ್ನು NULL ಪಾಯಿಂಟರ್ ಅಂತ್ಯಗೊಳಿಸಬೇಕು.

Execv ಮತ್ತು execvp ಕಾರ್ಯಗಳು ಹೊಸ ಪ್ರೋಗ್ರಾಂಗೆ ಲಭ್ಯವಿರುವ ಆರ್ಗ್ಯುಮೆಂಟ್ ಪಟ್ಟಿಯನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಶೂನ್ಯ-ಮುಕ್ತಾಯದ ತಂತಿಗಳಿಗೆ ಪಾಯಿಂಟರ್ಗಳನ್ನು ಒದಗಿಸುತ್ತವೆ. ಮೊದಲ ಆರ್ಗ್ಯುಮೆಂಟ್, ಸಂಪ್ರದಾಯದಂತೆ, ಕಾರ್ಯಗತಗೊಳಿಸಲ್ಪಡುವ ಕಡತದೊಂದಿಗೆ ಸಂಬಂಧಿಸಿದ ಫೈಲ್ ಹೆಸರನ್ನು ಸೂಚಿಸಬೇಕು. ಪಾಯಿಂಟರ್ಗಳ ಸರಣಿ NULL ಪಾಯಿಂಟರ್ನಿಂದ ಕೊನೆಗೊಳ್ಳಬೇಕು.

ಎಕ್ಸೆಲ್ ಕಾರ್ಯವು NULL ಪಾಯಿಂಟರ್ ಅನ್ನು ಅನುಸರಿಸುವುದರ ಮೂಲಕ ಕಾರ್ಯಗತಗೊಳಿಸಿದ ಪ್ರಕ್ರಿಯೆಯ ಪರಿಸರವನ್ನು ಸೂಚಿಸುತ್ತದೆ, ಅದು ಪ್ಯಾರಾಮೀಟರ್ ಪಟ್ಟಿಯಲ್ಲಿರುವ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳ ಪಟ್ಟಿಯನ್ನು ಅಥವಾ ಹೆಚ್ಚುವರಿ ಪ್ಯಾರಾಮೀಟರ್ನೊಂದಿಗೆ ಆರ್ಗ್ಯ್ ವ್ಯೂಹಕ್ಕೆ ಪಾಯಿಂಟರ್ ಅನ್ನು ಕೊನೆಗೊಳಿಸುತ್ತದೆ. ಈ ಹೆಚ್ಚುವರಿ ನಿಯತಾಂಕವು ಶೂನ್ಯ-ಅಂತ್ಯಗೊಳಿಸಿದ ತಂತಿಗಳಿಗೆ ಪಾಯಿಂಟರ್ಗಳ ಸರಣಿಯಾಗಿದೆ ಮತ್ತು ಅದನ್ನು NULL ಪಾಯಿಂಟರ್ನಿಂದ ಕೊನೆಗೊಳಿಸಬೇಕು. ಇತರ ಪ್ರಕ್ರಿಯೆಗಳು ಪ್ರಸ್ತುತ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಬಾಹ್ಯ ವೇರಿಯಬಲ್ ಪರಿಸರದಿಂದ ಹೊಸ ಪ್ರಕ್ರಿಯೆ ಚಿತ್ರಣವನ್ನು ಪರಿಸರಕ್ಕೆ ತೆಗೆದುಕೊಳ್ಳುತ್ತವೆ.

ಈ ಕೆಲವು ಕಾರ್ಯಗಳು ವಿಶೇಷ ಸೆಮ್ಯಾಂಟಿಕ್ಸ್ಗಳನ್ನು ಹೊಂದಿವೆ.

ನಿಗದಿತ ಫೈಲ್ ಹೆಸರು ಒಂದು ಸ್ಲ್ಯಾಶ್ (/) ಅಕ್ಷರವನ್ನು ಹೊಂದಿಲ್ಲದಿದ್ದರೆ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್ ಅನ್ನು ಹುಡುಕುವಲ್ಲಿ ಕಾರ್ಯಗಳು execlp ಮತ್ತು execvp ಶೆಲ್ನ ಕ್ರಿಯೆಗಳನ್ನು ನಕಲು ಮಾಡುತ್ತವೆ. PATH ವೇರಿಯೇಬಲ್ ಮೂಲಕ ಪರಿಸರದಲ್ಲಿ ಸೂಚಿಸಲಾದ ಮಾರ್ಗವು ಹುಡುಕಾಟ ಪಥವಾಗಿದೆ. ಈ ವೇರಿಯಬಲ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸದಿದ್ದರೆ, ಡೀಫಾಲ್ಟ್ ಮಾರ್ಗ ``: / bin: / usr / bin '' ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಇದರ ಜೊತೆಗೆ, ಕೆಲವು ದೋಷಗಳನ್ನು ವಿಶೇಷವಾಗಿ ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ.

ಒಂದು ಕಡತಕ್ಕಾಗಿ ಅನುಮತಿಯನ್ನು ನಿರಾಕರಿಸಿದರೆ (ಪ್ರಯತ್ನಿಸಿದ ಎಕ್ಸೆವ್ EACCES ಅನ್ನು ಹಿಂದಿರುಗಿಸಿತು), ಈ ಕ್ರಿಯೆಗಳು ಹುಡುಕಾಟ ಪಥವನ್ನು ಉಳಿದಿವೆ. ಬೇರೆ ಯಾವುದೇ ಫೈಲ್ ಕಂಡುಬಂದರೆ, ಅವರು EACCES ಗೆ ಹೊಂದಿಸಲಾದ ಜಾಗತಿಕ ವೇರಿಯಬಲ್ ಎರ್ನೋ ಜೊತೆ ಹಿಂದಿರುಗುತ್ತಾರೆ.

ಒಂದು ಕಡತದ ಶಿರೋನಾಮೆಯು ಗುರುತಿಸಲ್ಪಡದಿದ್ದರೆ (ಪ್ರಯತ್ನಿಸಿದ ಎಕ್ಸ್ಕ್ವೆವ್ ENOEXEC ಅನ್ನು ಹಿಂದಿರುಗಿಸಿತು), ಈ ಕಾರ್ಯಗಳು ಶೆಲ್ ಅನ್ನು ಅದರ ಮೊದಲ ಆರ್ಗ್ಯುಮೆಂಟ್ನಂತೆ ಹಾದುಹೋಗುತ್ತವೆ. (ಈ ಪ್ರಯತ್ನವು ವಿಫಲವಾದರೆ, ಹೆಚ್ಚಿನ ಶೋಧನೆ ಮಾಡಲಾಗುವುದಿಲ್ಲ.)

Exec ಕಾರ್ಯಗಳ ಮೌಲ್ಯವನ್ನು ಹಿಂತಿರುಗಿಸಿ

ಯಾವುದೇ ಎಕ್ಸೆಕ್ ಕಾರ್ಯಗಳು ಹಿಂದಿರುಗಿದರೆ, ಒಂದು ದೋಷ ಸಂಭವಿಸಿದೆ. ರಿಟರ್ನ್ ಮೌಲ್ಯವು -1, ಮತ್ತು ಜಾಗತಿಕ ವೇರಿಯಬಲ್ ದೋಷವು ದೋಷವನ್ನು ಸೂಚಿಸಲು ಹೊಂದಿಸಲ್ಪಡುತ್ತದೆ.