Jag förstår att medan exec () inte återvänder efter det att det körs i Unix, kan system () eller kanske inte återvända beroende på situationen.Men kan någon förklara varför exec () systemanrop inte återkommer och också skillnaderna mellan exec () och system () i Unix-operativsystemet

Kommentarer

  • Observera att system(3) inte är ett systemanrop, det ' en biblioteksfunktion som i sig själv gör några systemanrop.
  • system() returnerar alltid.

Svar

system () motsvarar gaffel () + exec () + vänta (); det betyder att när ett processkörningssystem () -funktion skapar det en ny process och väntar i slutet av processen. Den nya processen kör kommandot i sin egen miljö, när den är klar, ringer den mottagande signalen.

För ytterligare information man exec man system

”exec ersätter den aktuella processbilden med en ny processbild”, det betyder när den lämnar den som ringer ut också eftersom den som ringer har blivit den nya processen.

Kommentarer

  • Det finns ' lite mer än det. system() faktiskt exec() är ditt standardskal och skickar strängen till den för att bearbeta, så att du till exempel kan använda en pipeline och andra skalfunktioner.

Svar

Detta är ett systemanrop i Unix OS som ersätter den pågående processen med information från det binära programmet.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *