Հոսքերը Linux ՕՀ - ում. fork Ինչ է անում fork ֆունկցիան ? Ինչ է անում fork ֆունկցիան ? Ինչ արժեքներ է վերադարձնում fork ֆունկցիան ? Ինչ արժեքներ է վերադարձնում.

Презентация:



Advertisements
Похожие презентации
Транксрипт:

Հոսքերը Linux ՕՀ - ում

fork Ինչ է անում fork ֆունկցիան ? Ինչ է անում fork ֆունկցիան ? Ինչ արժեքներ է վերադարձնում fork ֆունկցիան ? Ինչ արժեքներ է վերադարձնում fork ֆունկցիան ? Ինչ գրադարաններ են անհրաժեշտ fork ֆունկցիան օգտագործելու համար ? Ինչ գրադարաններ են անհրաժեշտ fork ֆունկցիան օգտագործելու համար ?

Ամենաշատ տրվող հարցը Ինչպես աշխատացնել մեկ այլ ֆայլ Linux ՕՀ - ում ընթացիկ պրոցեսի միջոցով ?

execl, execlp, execle, execv, execvp, execvpe – աշխատացնում են նոր պրոցես ընթացիկ պրոցեսից execl, execlp, execle, execv, execvp, execvpe – աշխատացնում են նոր պրոցես ընթացիկ պրոցեսից

#include #include unistd.h int execl(const char *path, const char *arg,...); int execlp(const char *file, const char *arg,...); int execle(const char *path, const char *arg,..., char * const envp[]); int execv(const char *path, char *const argv[]); int execvp(const char *file, char *const argv[]); int execvpe(const char *file, char *const argv[], char *const envp[]);

exec exec ֆունկցիաները փոխարինում են ընթացիկ պրոցեսի image- ը նոր պրոցեսի image- ով exec ֆունկցիաները փոխարինում են ընթացիկ պրոցեսի image- ը նոր պրոցեսի image- ով Առաջին արգումենտը այն ֆայլի անունն է, որը պետք է գործարկվի Առաջին արգումենտը այն ֆայլի անունն է, որը պետք է գործարկվի

Ինչ խնդիրներ կարող ենք ունենալ, երբ փորձում ենք գործարկել կատարողական ֆայլ պրոցեսի միջից ?

EACCES – ֆայլը չունի թույլտվություն աշխատելու համար (non executable) EACCES – ֆայլը չունի թույլտվություն աշխատելու համար (non executable) ENOEXEC – եթե ֆայլի header- ը « անծանոթ է » ENOEXEC – եթե ֆայլի header- ը « անծանոթ է »

Վերադարձվող արժեքները Վերադարձնում է -1, եթե տեղի է ունեցել սխալ, այդ դեպքում errno փոփոխականը կպարունակի սխալի կոդը Վերադարձնում է -1, եթե տեղի է ունեցել սխալ, այդ դեպքում errno փոփոխականը կպարունակի սխալի կոդը

Կոդի օրինակ #include<unistd.h> int main() { const char* command ="./freenull"; execvp(command,NULL); return 0; }

Հարցեր ?