Funkcja execvp () należy do rodziny Exec. W dzisiejszym temacie omówimy cechy i zastosowanie funkcji execVP () w ramach Exec Family.
Funkcja Exec Family w języku C pomaga nam realizować inne programy w naszym programie. Aby to zrobić z mojego programu, używamy zestawu funkcji o nazwie Exec Family of Function i są one w programie Linux.
Zastosowanie funkcji execvp ()
Jeśli chcemy wykonać ping programu, możemy zastosować to za pośrednictwem funkcji execvp (). W tym celu musimy użyć tablicy. Litera „v” używana dla funkcji execVp () oznacza wektor.
Składnia
Składnia funkcji execvp ():
int execvp (const char *plik, char *const)Tutaj pierwszym parametrem jest wskaźnik pliku, który wskazuje plik, który ma zostać wykonany w programie.
Drugi parametr to stała wskaźnika, która ma charakter i będzie używany jako terminator zerowy.
Przykład programowania 1
Tutaj zobaczymy, jak funkcja execvp () faktycznie działa w naszym programie.
#włączaćWyjście
Wyjaśnienie
W tym przykładzie programowania, jeśli chcemy pingować „Google.com ”Z funkcją execVP () na platformie Linux musimy dołączyć plik nagłówka o nazwie unistd.H w naszym programie.
Aby wykonać funkcję execVP (), musimy zadeklarować tablicę (faktycznie tablicę ciągu) o nazwie AR [] i zainicjować niektóre wartości, takie jak „ping”, Google.com ”i null.
Teraz, jeśli spróbujemy przekazać tablicę argumentu wewnątrz funkcji funkcji execvp ().com jako wyjście.
Przykład programowania 2
Tutaj pokazujemy kolejną aplikację funkcji execVP ().
#include // w tym plik dla platformy LinuxWyjście
Wyjaśnienie
W tym przykładzie programowania zobaczymy, czy funkcja execVP () zwróci wartość fałszywą. Jeśli funkcja execvp () zwraca wartość fałszywą, wówczas wydrukowała wartość „Errorno ” który jest 2 i wydrukuj wiadomość „Brak takiego pliku lub katalogu”.
Jeśli funkcja execvp () zwraca wartość prawdziwą, każda instrukcja po execVP nie zostanie uruchomiona. Jak wiemy z charakterystyki funkcji execVP (), nikt nie jest wykonywany, gdy funkcja execvp () przejmuje kontrolę nad programem.
Przykład programowania 3
W tym przykładzie programowania zobaczymy ważne zastosowanie funkcji execVp () związanej z Fork () lub procesem.
#włączaćWyjście
Wyjaśnienie
Podobnie jak wszystkie funkcje Exec Family w C, funkcja execvp () może wykonywać inne programy w naszym programie.
W tym przykładzie programowania deklarujemy tablicę znaków lub nazwę ciągu arg_ls []. Wewnątrz tego ciągu inicjujemy również niektóre wartości i null. Następnie nazywamy inny proces wywołany Fork ().
Tutaj funkcja execvp () zwraca wartość prawdziwą. Tak więc funkcja Fork () może z powodzeniem wykonać swoją działanie. Jeśli nie, to trafi do programu głównego.
Przykład programowania 4
Tutaj zobaczymy inną funkcję funkcji execvp ().
#włączaćWyjście
Wyjaśnienie
Powyższym przykładem programowania jest zmodyfikowana wersja programu 3. Tutaj zobaczymy, czy Funkcja Fork () zwróci „0”. Następnie proces dziecka wykona ich kod i jest kontrolowany przez „LS-” L Komenda. Wartość, która zwróci execVP (), jest przypisana do zmiennej wymienionej STS_CD. Jeśli STS_CD zobaczymy wartość -1, a następnie zrozumiemy, że jest to błąd funkcji execVP (). W przeciwnym razie ta funkcja przejmuje kontrolę nad resztą programu.
Wniosek
Z powyższej dyskusji na temat implementacji execvp () w rodzinie Exec, doszliśmy do wniosku, że zastępuje obraz procesu nowym obrazem w naszym pamięci RAM (pamięć o dostępie losowej), aby wykonać nowy proces. W rzeczywistości ta funkcja pomaga naszemu systemowi operacyjnym w zarządzaniu wszystkimi procesami gotowymi do wykonania przez procesor przy mniejszym czasie.