PDA

View Full Version : fork()



NIMA_1981
دوشنبه 14 فروردین 1391, 23:59 عصر
سلام دوستان

میشه زاهنمایی کنید توی ویندور چه طوری یاید از fork() استفاده کنیم

NIMA_1981
سه شنبه 15 فروردین 1391, 17:48 عصر
دوستان کسی با این موضوع آشنایی نداره

pe32_64
سه شنبه 15 فروردین 1391, 22:36 عصر
وقتی این تابع رو صدا زدی یک child process(تقریبا یک کپی از برنامه ) ساخته میشه ،که می شه توی اون یک برنامه ی دیگه رو باز کرد(با execve).
برای اطلاعات بیشتر برین اینجا (http://linux.die.net/man/2/fork) و اینجا (http://linux.die.net/man/2/execve)

حامد مصافی
سه شنبه 15 فروردین 1391, 23:10 عصر
مدیریت حافظه در ویندوز با سیستم‌عامل‌های مبتنی بر یونیکس تفاوت دارد. fork تحت ویندوز در برخی محیط‌ها مانند MKS Toolkit (http://www.mkssoftware.com/docs/man3/fork.3.asp) پیاده‌سازی شده است. از طرفی cygwin (http://www.cygwin.com/) هم پشتیبانی کاملی از fork ارائه می‌کند.

NIMA_1981
چهارشنبه 16 فروردین 1391, 00:27 صبح
من وقتی توی لینوکس برنامه نویسی میکنم به سادگی به این توابغ دسترسی دارم اما الان مشکلم با ویندوز هست که دقیقا نیمدنم باید از جه کتایخانه ای استفاده کنم -میهش در مورد این MKS Toolkit (http://www.mkssoftware.com/docs/man3/fork.3.asp)
بیشتر توضیح بدید ایا باید کمپایلر را عوض کنم
من الان این کد رو نوشتم اما برنامه اجرا نمیشه

#include <stdio.h>
#include <unistd.h>
int main()
{
printf("1");
fork();
return 0;
}


با تشکر

NIMA_1981
چهارشنبه 16 فروردین 1391, 00:28 صبح
وقتی این تابع رو صدا زدی یک child process(تقریبا یک کپی از برنامه ) ساخته میشه ،که می شه توی اون یک برنامه ی دیگه رو باز کرد(با execve).
برای اطلاعات بیشتر برین اینجا (http://linux.die.net/man/2/fork) و اینجا (http://linux.die.net/man/2/execve)
دوست عزیز اینها برای لینوکس هست من مشکلی با لینوکس ندارم من میخوام توی ویندوز اسنفاده کنم

حامد مصافی
چهارشنبه 16 فروردین 1391, 00:42 صبح
اگه قبلاً در محیط لینوکس برنامه نوشتی برو سراغ cygwin

What is it?

Cygwin is:
a collection of tools which provide a Linux look and feel environment for Windows.

NIMA_1981
چهارشنبه 16 فروردین 1391, 10:07 صبح
من فکر کنم این نرم افزار شبیه شاز لینوکس باشه - من با استفاده از این نرم افزار میتونم برنامه تحت ویندوز بنویسم - چون من کلا احیتاج دارم که برنامه تحت ویندوز اجرا بشه

pe32_64
چهارشنبه 16 فروردین 1391, 14:54 عصر
دوست عزیز اینها برای لینوکس هست من مشکلی با لینوکس ندارم من میخوام توی ویندوز اسنفاده کنم

از تابع () WinExec (http://msdn.microsoft.com/en-us/library/windows/desktop/ms687393%28v=vs.85%29.aspx)و () CreateProcess (http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425%28v=vs.85%29.aspx)استفاده کنید(توابع با هم فرقی ندارن چون تابع اول دومی رو صدا می زنه)

حامد مصافی
چهارشنبه 16 فروردین 1391, 18:41 عصر
من فکر کنم این نرم افزار شبیه شاز لینوکس باشه - من با استفاده از این نرم افزار میتونم برنامه تحت ویندوز بنویسم - چون من کلا احیتاج دارم که برنامه تحت ویندوز اجرا بشه
بله، cygwin دقیقاً به همین منظور ساخته شده. شما می‌توانید با همان سبک لینوکسی کد بنویسید و خروجی ویندوزی بگیرید.

NIMA_1981
پنج شنبه 17 فروردین 1391, 01:17 صبح
cygwin این برنامه راهنمایی نداره که چه جطوری میشه برنامه نوشت

eAmin
پنج شنبه 17 فروردین 1391, 13:51 عصر
Cygwin خودش یک کامپایلر مخصوص داره، همون GNU C++‎ هست که برای ویندوز پورت شده، مثل MinGW . وقتی دارید نصبش میکنید باید قسمت devel این کامپایلر رو متناسب با نیازتون انتخاب کنید تا نصب بشه. بعد از اون میتونید مثل خط فرمان لینوکس برنامه ی خودتون رو کامپایل کنید.
مستندات http://cygwin.com/docs.html