c++鍒涘缓杩涚▼鎬庝箞浣跨敤
鍦–++涓垱寤鸿繘绋嬮€氬父浣跨敤fork()
鍑芥暟鏉ュ垱寤轰竴涓瓙杩涚▼锛岀劧鍚庡彲浠ヤ娇鐢?code>exec()绯诲垪鍑芥暟鏉ユ墽琛屽彟涓€涓▼搴忋€備互涓嬫槸涓€涓畝鍗曠殑绀轰緥锛?/p>
#include <iostream>
#include <unistd.h>
int main() {
pid_t pid = fork();
if (pid < 0) {
std::cerr << "Error creating child process." << std::endl;
return 1;
} else if (pid == 0) {
// Child process
execl("/bin/ls", "ls", "-l", NULL);
} else {
// Parent process
wait(NULL);
std::cout << "Child process completed." << std::endl;
}
return 0;
}
鍦ㄨ繖涓ず渚嬩腑锛?code>fork()鍑芥暟灏嗗垱寤轰竴涓瓙杩涚▼锛屽苟杩斿洖瀛愯繘绋嬬殑PID銆傚鏋?code>fork()杩斿洖鍊煎皬浜?锛屽垯琛ㄧず鍒涘缓杩涚▼澶辫触銆傚鏋滆繑鍥炲€间负0锛屽垯琛ㄧず褰撳墠杩涚▼鏄瓙杩涚▼锛屽彲浠ヤ娇鐢?code>execl()鍑芥暟鏉ユ墽琛?code>/bin/ls鍛戒护銆傚鏋滆繑鍥炲€煎ぇ浜?锛屽垯琛ㄧず褰撳墠杩涚▼鏄埗杩涚▼锛屽畠浼氱瓑寰呭瓙杩涚▼鎵ц瀹屾瘯鍚庤緭鍑轰竴鏉℃秷鎭€?/p>
闇€瑕佹敞鎰忕殑鏄紝fork()
鍑芥暟鍦ㄧ埗杩涚▼鍜屽瓙杩涚▼涓繑鍥炵殑鍊兼槸涓嶅悓鐨勶紝鍥犳閫氳繃鍒ゆ柇杩斿洖鍊兼潵鍖哄垎鐖惰繘绋嬪拰瀛愯繘绋嬨€傚悓鏃讹紝鍦ㄥ瓙杩涚▼涓娇鐢?code>execl()鍑芥暟鏉ユ墽琛屽彟涓€涓▼搴忔椂锛岄渶瑕佹寚瀹氳鎵ц鐨勭▼搴忚矾寰勫拰鍙傛暟鍒楄〃銆?/p>
相关问答