Megértem, hogy bár az exec () nem tér vissza, miután végrehajtotta a Unix-ot, a system () lehet vagy lehet nem tér vissza a helyzettől függően. De bárki meg tudja magyarázni, miért nem tér vissza az exec () rendszerhívás, valamint az exec () és a system () közötti különbségeket a Unix operációs rendszerben

Megjegyzések

  • Ne feledje, hogy a system(3) nem rendszerhívás, hanem ' olyan könyvtárfunkció, amely maga is létrehoz néhányat rendszerhívások.
  • system() mindig visszatér.

Válasz

A system () egyenértékű a fork () + exec () + wait (); ez azt jelenti, hogy amikor a process run system () függvény új folyamatot hoz létre, és megvárja ennek a folyamatnak a végét. Az új folyamat a parancsot a saját környezetében hajtja végre, amikor befejeződött, a hívó megkapja a jelzőt.

További információ: man exec man system

“Az exec az aktuális folyamatképet új folyamatképpel helyettesíti”, ez azt jelenti, hogy amikor kilép a hívó fél kilép, amikor a hívó új folyamat lett.

Megjegyzések

  • ' ennél többet is tartalmaz. system() valójában exec() s az alapértelmezett héj, és átadja neki a karakterláncot a feldolgozáshoz, így például használhat egy folyamatot és más shell funkciókat.

Válasz

Ez egy olyan rendszerhívás a Unix operációs rendszerben, amely a jelenleg futó folyamatot a bináris program információival helyettesíti.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük