|  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
System
  • Grundläggande datorkunskaper
  • Linux
  • Mac OS
  • Ubuntu
  • Unix
  • Windows
  • Windows Vista
  • Windows XP
  • Windows 7
  • Windows 10
  • Windows 11
  • Windows 2012
  • Windows 2016
  • Windows 2019
  • Windows 2022
  • Apple
  • Android
  • iOS
  • CentOS
  • * Dator Kunskap >> System >> Unix >> Content

    Vad är execlp-systemanrop?

    Systemanropet `execlp()` i Linux används för att köra ett program, och ersätter den nuvarande pågående processen med det nya programmet. "lp" i `execlp()` står för "lista över pekare", vilket hänvisar till argumenten som skickas till det nya programmet. Här är en detaljerad förklaring av hur `execlp()` fungerar:

    Prototyp:

    ```c

    int execlp(const char *fil, const char *arg0, ..., const char *argn, (char *) NULL);

    ```

    Argument:

    - `fil`:Detta är sökvägen till den körbara filen eller programmet som du vill köra.

    - `arg0`, `...,` `argn`:Dessa är pekare till noll-terminerade strängar som representerar kommandoradsargumenten som ska skickas till det nya programmet. `arg0` ska alltid vara namnet på själva programmet.

    - `(char *) NULL`:Detta är en obligatorisk nollpekare i slutet av listan med argument. Den fungerar som en avgränsare för att indikera slutet av argumentlistan.

    Beskrivning:

    - `execlp()` är en variant av `execl()`-systemanropet som använder ett förenklat, men ändå flexibelt sätt att skicka argument till det nya programmet. Den söker automatiskt efter den körbara filen i katalogerna som specificeras av miljövariabeln "PATH".

    - När `execlp()` anropas ersätts den nuvarande pågående processen av det nya programmet specificerat av `file`. Argumenten `arg0`, `...,` `argn` skickas som kommandoradsargument till det nya programmet.

    - `execlp()` återgår inte till anropsprocessen. Istället överför den kontrollen till det nya programmet, som börjar köras. Om det finns några fel under körningen av `execlp()`, såsom att den körbara filen inte hittas eller otillräckliga behörigheter, kommer `execlp()`-anropet att misslyckas och returnera -1, vilket lämnar den aktuella processen opåverkad.

    Exempel:

    ```c

    #include

    #include

    int main() {

    // Kör kommandot "ls -l".

    execlp("ls", "ls", "-l", (char *) NULL);

    // Den här raden kommer bara att köras om execlp() misslyckas

    perror("execlp() misslyckades");

    returnera 0;

    }

    ```

    I det här exemplet kör systemanropet `execlp()` kommandot "ls -l", som listar filerna i den aktuella katalogen med detaljerad information. Om `execlp()` lyckas kommer kommandot "ls -l" att köras och kontrollen kommer att överföras till `ls`-programmet. Om `execlp()` stöter på ett fel, kommer `perror()`-funktionen att skriva ut ett felmeddelande till standardfelströmmen ("stderr").

    Viktigt:

    - `execlp()` är en av flera `exec()`-familjefunktioner i Linux som utför samma uppgift att köra nya program men med olika argumenthanteringsmekanismer. Andra vanliga `exec()`-funktioner inkluderar `execl()`, `execv()`, `execvp()` och `execve()`.

    - `execlp()` söker bara efter den körbara filen i de kataloger som specificeras av miljövariabeln `PATH`, så det är viktigt att se till att den körbara filen finns i en av dessa kataloger.

    - Argumenten `arg0`, `...,` `argn` måste vara nollterminerade strängar. Att skicka icke-null-terminerade strängar eller försöka skicka fler argument än funktionen kan hantera kan leda till odefinierat beteende.

    - Systemanropet `execlp()` används i många Unix-liknande operativsystem, inte bara Linux.

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur du ändrar VIM till UNIX Format
    ·Hur man skapar en startdiskett för Unix
    ·Vad är interna DOS-kommandon?
    ·VMS Vs. UNIX
    ·Unix stöder DOS-kommandon eller inte?
    ·Handledning för Unix LS
    ·När flera program eller processer körs på en Unix-ma…
    ·Vad är funktionen för PS-systemanrop i unix?
    ·Vad gör kommandot Type?
    ·Vad är TOSS i Linux?
    Utvalda artiklarna
    ·Nätverk är inaktiverad i Ubuntu
    ·Hur man installerar SQLite3 i Merb på Ubuntu
    ·Felsökning av en misslyckad allvarligt fel inträffade…
    ·Hur testa batteriet i en HP Pavilion
    ·Vad är tvåstegsverifiering i datortermer?
    ·Lägga till filer i en komprimerad mapp i datorn
    ·Hur man kör DOS Games i Windows Vista
    ·Hur Synkronisera Mythtranscode Audio
    ·Hur skärmväxlare Porträtt på Ubuntu
    ·Hur Ladda Windows XP på Acer Aspire 1642
    Copyright © Dator Kunskap https://www.dator.xyz