انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: برنامه با تابع Fork به زبان C در لینوکس  (دفعات بازدید: 12086 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین newman2006006

  • Newbie
  • *
  • ارسال: 13
  • جنسیت : پسر
با سلام بنده تحقیق دانشجویی زیر را دارم کسی میتونه کد زیر را برام بنویسد؟
براي اين کار برنامه اي بنویسید که از چهار دستور fork متوالی استفاد کند و شانزده پردازه ايجاد کند. با
استفاد از دستورات مربوط به مشخصات پرداز ها براي هر پردازه شماره ID و شماره ID ايجاد کننده آن را بدست
بياورید. درختی بر اساس اين ID ها رسم کنید که رابطه ی child ، parent را نشان دهد.

با تشکر

آفلاین majidkamali1370

  • Hero Member
  • *
  • ارسال: 928
  • جنسیت : پسر
پاسخ : برنامه با تابع Fork به زبان C در لینوکس
« پاسخ #1 : 18 آبان 1391، 07:05 ب‌ظ »
با هر بار اجرای fork/exec یه process جدید ایجاد میشه. البته فقط fork پردازه رو ایجاد میکنه. fork آی دی پردازه ایجاد شده رو برمیگردونه.
http://linux.die.net/man/3/fork
http://linux.die.net/man/3/exec
Ubuntu 14.04 LTS 64-bit - unity

آفلاین newman2006006

  • Newbie
  • *
  • ارسال: 13
  • جنسیت : پسر
پاسخ : برنامه با تابع Fork به زبان C در لینوکس
« پاسخ #2 : 18 آبان 1391، 07:26 ب‌ظ »
با تشکر دوست عزیز ، من برنامه نویسی بلدم اما زبان C بلد نیستم حالا باید چکار کنم می تونید کدش را برام بذارید؟

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4869
  • جنسیت : پسر
  • masoft قدیم
پاسخ : برنامه با تابع Fork به زبان C در لینوکس
« پاسخ #3 : 18 آبان 1391، 07:37 ب‌ظ »
با تشکر دوست عزیز ، من برنامه نویسی بلدم اما زبان C بلد نیستم حالا باید چکار کنم می تونید کدش را برام بذارید؟
دیگه اگه قرار هست یکی دیگه براتون بنویسه، چه تحقیقی هستش!!! اگر رشتتون مرتبط با کامپیوتر هست، C رو یاد بگیرید.

آفلاین newman2006006

  • Newbie
  • *
  • ارسال: 13
  • جنسیت : پسر
پاسخ : برنامه با تابع Fork به زبان C در لینوکس
« پاسخ #4 : 18 آبان 1391، 07:59 ب‌ظ »
اگر وقتش را داشتم ، آره ،ولی وقتی وقت ندارم ، مرسی .

آفلاین majidkamali1370

  • Hero Member
  • *
  • ارسال: 928
  • جنسیت : پسر
پاسخ : برنامه با تابع Fork به زبان C در لینوکس
« پاسخ #5 : 18 آبان 1391، 08:34 ب‌ظ »
http://www.cplusplus.com/forum/lounge/17684/
این رو یه نگاه بنداز.
جوابی که کد توش هست. قسمت unix اش.
فکر کنم کدش فابل فهم باشه.
Ubuntu 14.04 LTS 64-bit - unity

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4869
  • جنسیت : پسر
  • masoft قدیم
پاسخ : برنامه با تابع Fork به زبان C در لینوکس
« پاسخ #6 : 18 آبان 1391، 09:36 ب‌ظ »
جهان سوم جایی هست که رشته مرتبط با کامپیوتر بخونی و زبانی مثل C رو بلد نباشی، تمرین‌های دانشگاه رو بدی یکی دیگه برات انجام بده، بهانه‌ای که داری این باشه که وقت نداری، با این وجود بتونی مدرک بگیری و بعد هم که مدرک گرفتی از بیکاری و عدم پیشرفت کشور و بی‌سوادی جامعه ناراحت باشی!

آفلاین majidkamali1370

  • Hero Member
  • *
  • ارسال: 928
  • جنسیت : پسر
پاسخ : برنامه با تابع Fork به زبان C در لینوکس
« پاسخ #7 : 18 آبان 1391، 09:43 ب‌ظ »
+1 به تعریف جهان سوم
Ubuntu 14.04 LTS 64-bit - unity

آفلاین newman2006006

  • Newbie
  • *
  • ارسال: 13
  • جنسیت : پسر
پاسخ : برنامه با تابع Fork به زبان C در لینوکس
« پاسخ #8 : 18 آبان 1391، 09:56 ب‌ظ »
عزیزم جهان سومی یعنی اینکه به هر چیزی یک نوک بزنی بعد به هیج کدام هم نرسی ، عزیزم در زمینه طراحی وب و برنامه نویسی وب هر سوالی داشتی می تونی
http://faq.kingofpersia.ir/ مطرح کنی .
در ضمن جهان سوم یعنی اینکه فروم بزنی بعد در جواب سوال بگی برو خودت یاد بگیر.
« آخرین ویرایش: 18 آبان 1391، 09:58 ب‌ظ توسط newman2006006 »

آفلاین doomhammer65ir

  • High Hero Member
  • *
  • ارسال: 1572
  • جنسیت : پسر
    • IRAN Backup
پاسخ : برنامه با تابع Fork به زبان C در لینوکس
« پاسخ #9 : 18 آبان 1391، 10:32 ب‌ظ »
می بینم که واژه ی انجمن را دوباره معنی فرمودید


آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4869
  • جنسیت : پسر
  • masoft قدیم
پاسخ : برنامه با تابع Fork به زبان C در لینوکس
« پاسخ #10 : 18 آبان 1391، 10:53 ب‌ظ »
در ضمن جهان سوم یعنی اینکه فروم بزنی بعد در جواب سوال بگی برو خودت یاد بگیر.
انجمن محلی رای رفع اشکال هستش، نه گرفتن جواب تکلیف‌های دانشگاهی.
هر چیزی مراحلی داره. خوب شما می‌خواید بدونید fork توی C چجوری کار می‌کنه، ولی هنوز C رو بلد نیستید. خوب مسلما قدم اول یادگیری C هستش. بعد مطالعه در مورد fork. بعد یک برنامه با fork می‌نویسید، ولی درست کار نمی‌کنه، اینجا اون برنامه رو می‌نویسید و ما می‌تونیم کمک کنیم شما مشکل اون برنامه رو حل کنید.

نه اینکه من بیام اینجا بنویسم استاد من امروز این تکلیف رو داده، منم وقت ندارم، لطفا برای من حلش کنید که من فردا تحویلش بدم. اگر انجمنی هم این کار رو بکنه، تنها محلی هستش برای بی‌ارزش‌تر کردن مدرک‌های دانشگاهی.

آفلاین newman2006006

  • Newbie
  • *
  • ارسال: 13
  • جنسیت : پسر
پاسخ : برنامه با تابع Fork به زبان C در لینوکس
« پاسخ #11 : 18 آبان 1391، 11:09 ب‌ظ »
خوب دوست عزیز من برنامه را تا جایی نوشتم حالا می دونی چطور شناسه ها را بصورت درختی نمایش دهم؟
« آخرین ویرایش: 18 آبان 1391، 11:15 ب‌ظ توسط newman2006006 »

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4869
  • جنسیت : پسر
  • masoft قدیم
پاسخ : برنامه با تابع Fork به زبان C در لینوکس
« پاسخ #12 : 18 آبان 1391، 11:27 ب‌ظ »
خوب دوست عزیز من برنامه را تا جایی نوشتم حالا می دونی چطور شناسه ها را بصورت درختی نمایش دهم؟
خوب چیزی که نوشتید رو اینجا بذارید و بگید وقتی اجرا می‌کنیدش چه IDهایی رو میده.

آفلاین newman2006006

  • Newbie
  • *
  • ارسال: 13
  • جنسیت : پسر
پاسخ : برنامه با تابع Fork به زبان C در لینوکس
« پاسخ #13 : 18 آبان 1391، 11:41 ب‌ظ »
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
int main()
{
int i;
for(i=0;i<4;i++)
{
fork();
printf("the proccess id is %d and parent id is %d",getpid(),getppid() ");
}
}
البته فکر کنم اشتباست ، ولی من اون قسمت ترسیم درختی را پیدا کنم این را خود حل می کنم

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4869
  • جنسیت : پسر
  • masoft قدیم
پاسخ : برنامه با تابع Fork به زبان C در لینوکس
« پاسخ #14 : 19 آبان 1391، 02:12 ق‌ظ »
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
int main()
{
int i;
for(i=0;i<4;i++)
{
fork();
printf("the proccess id is %d and parent id is %d",getpid(),getppid() ");
}
}
البته فکر کنم اشتباست ، ولی من اون قسمت ترسیم درختی را پیدا کنم این را خود حل می کنم
اشتباه هستش. وقتی متوجه بشی چطور این برنامه کار می‌کنه و خروجی اون رو هم بگیری، به راحتی می‌تونی اون ترسیم درختی هم انجام بدی. این برنامه ابتدا دستور fork رو چهار بار اجرا می‌کنه. این یعنی ۴ بار دیگه این برنامه اجرا میشه. هر کدوم از اون چهارتا، چهار بار دیگه این برنامه رو اجرا می‌کنند و همینطور تا ابد این برنامه خودش رو اجرا می‌کنه.
به این می‌گن Fork Bomb (لینک)، چون ناگهان کلی پراسس روی سیستم میاره و کل حافظه رو می‌گیره و می‌تونه شما رو مجبور کنه سیستم رو ریستارت کنید.
راهنمایی: باید قبل از اینکه دستور fork رو اجرا بکنی، بررسی بکنی که آیا باید اجرا بشه یا نه. (چک کنی الان در parent هستی یا در child)