程序的建立 fork python版)

2021-08-09 17:59:23 字數 1083 閱讀 4433

編寫完畢的**,在沒有執行的時候,稱之為程式

正在執行著的**,就成為程序

程序,除了包含**以外,還有需要執行的環境等,所以和程式是有區別的

python的os模組封裝了常見的系統呼叫,其中就包括fork,可以在python程式中輕鬆建立子程序:

import os

# 注意,fork函式,只在unix/linux/mac上執行,windows不可以

pid = os.fork()

if pid == 0:

print('哈哈1')

else:

print('哈哈2')

在unix/linux作業系統中,提供了乙個fork()系統函式,它非常特殊。

普通的函式呼叫,呼叫一次,返回一次,但是fork()呼叫一次,返回兩次,因為作業系統自動把當前程序(稱為父程序)複製了乙份(稱為子程序),然後,分別在父程序和子程序內返回。

子程序永遠返回0,而父程序返回子程序的id。

這樣做的理由是,乙個父程序可以fork出很多子程序,所以,父程序要記下每個子程序的id,而子程序只需要呼叫getppid()就可以拿到父程序的id。

import os

rpid = os.fork()

if rpid<0:

print("fork呼叫失敗。")

elif rpid == 0:

print("我是子程序(%s),我的父程序是(%s)"%(os.getpid(),os.getppid()))

x+=1

else:

print("我是父程序(%s),我的子程序是(%s)"%(os.getpid(),rpid))

print("父子程序都可以執行這裡的**")

執行結果:

我是父程序(19360),我的子程序是(19361)

父子程序都可以執行這裡的**

我是子程序(19361),我的父程序是(19360)

父子程序都可以執行這裡的**

Linux程序 程序的建立

今天學習了linux的程序建立的基本原理,是基於0.11版本核心的。下面對其作一下簡單的總結。一 linux程序在記憶體中的相關資源 很容易理解,linux程序的建立過程就是記憶體中程序相關資源產生的過程,那麼linux程序在記憶體中有哪些相關資源呢?1 task陣列中的一項 乙個指標指向程序的ta...

程序的建立

程序的建立 1.詳解程序建立的幾類函式的說明 fork vfork exec system?1 獲取id include include pid t getpid void 獲取本程序id。pid t getppid void 獲取父程序id 2 啟動程序 a pid tfork void 功能 建...

程序的建立

fork 用來建立新的程序 在父程序中返回子程序的程序號,在子程序中返回0,錯誤返回 1 表頭檔案 include include 定義函式 pid t fork void pid t 建立程序時會用到程序號的型別定義,實際上為int型別 在fork 建立乙個程序的同時,子程序完全複製父程序的資源,...