()System call fork برای ایجاد یک پردازش جدید به کار میرود . هیچ آرگومانی ندارد و شناسه یک پروسه را بر می گرداند.هدف از به کارگیری تابع ()Fork ایجاد یک پروسه زیرشاخه است که پروسه فراخواننده را بعنوان والد خود داراست.هر دوی پروسه ها دستورات بعد از فراخوانی تابع ()Fork را اجرا می کنند بنابراین باید بتوانید پروسه فرزند و پروسه والد را تشخیص دهید.این عمل را میتوانید با تست مقدار ()Fork انجام دهید:
اگر ()Fork یک مقدار منفی بازگرداند، ایجاد پروسه فرزند با موفقیت همراه نبوده است.
اگر ()Fork مقدار صفر را بازگرداند بتازگی یک پروسه فرزند ایجاد کرده است.
اگر ()Fork یک مقدار مثبت را بازگرداند ، این مقدار مثبت شناسه پردازش پروسه فرزند است.که این شناسه از نوع T_id بوده و در سرفایل sys/types.h تعریف میشود.اگرچه شما با استفاده از تابع ()getpid هم میتوانید شناسه یک پروسه را بدست بیاورید.
توجه داشته باشید که یونیکس یک کپی دقیق از آدرس فضای پروسه والد تهیه کرده و آنرا در اختیار پروسه فرزند قرار میدهد بنابراین در یونیکس پروسه های فرزند و والد آدرس های متفاوتی خواهند داشت.




