Jeg forstår, at mens exec () ikke vender tilbage, efter at det er udført i Unix, kan system () måske eller måske ikke vende tilbage afhængigt af situationen. men kan nogen forklare, hvorfor exec () systemopkald ikke vender tilbage, og også forskellene mellem exec () og system () i Unix-operativsystemet

Kommentarer

  • Bemærk, at system(3) ikke er et systemopkald, det ' er en biblioteksfunktion, der selv gør nogle få systemopkald.
  • system() vender altid tilbage.

Svar

system () svarer til fork () + exec () + wait (); det betyder, at når et proceskøresystem () -funktion opretter det en ny proces og venter på slutningen af denne proces. Den nye proces udfører kommandoen i sit eget miljø, når den er færdig, modtager den, der ringer op, signalbaren.

For yderligere information man exec man system

“exec erstatter det aktuelle procesbillede med et nyt procesbillede”, det betyder, når det forlader den, der kalder op, også når den, der ringer, er blevet den nye proces.

Kommentarer

  • Der ' siger lidt mere til det end det. system() faktisk exec() er din standardskal og sender strengen til den til behandling, så du f.eks. kan bruge en pipeline og andre skalfunktioner.

Svar

Dette er et systemopkald i Unix OS, der erstatter den aktuelt kørende proces med en information fra det binære program.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *