ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
slayterלא בפורום כעת ת.הצטרפות: 01/07/2002 · הודעות: 45 · מיקום: Israel
 

הודעה פורסם: 18/05/2003 - 19:03
נושא ההודעה:

שלום לכולם
אני מנסה לעשות דבר פשוט מאוד
קוד:
קוד:
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>

int pid,fd;

char c;

main()

{
if(!(pid = fork()))
{
c='a';
for(int i=0;i<5;i++)
{
printf(\"%c\",c);c++;sleep(1);
}
printf(\"process sun %d finished\n\",getpid());
exit(0);
}
c='A';
for(int i=0;i<5;i++)
{
printf(\"%c\",c);c++;sleep(1);
}
printf(\"father %d of peocces %d finished\n\",getpid(),pid);
return 0;
}

התוצאה קל לנחש
אחד מדפיס אותיות קטנות והשני אותיות גדולות
הכל טוב ויפה ואפילו עובד רק למה זה כלכך איטי לתוכנית הזאת לוקח עיזה 15 שניות למרות שמעבד לא מנוצל בכלל פחות מ0.1 אחוז מהיכולת המעבד
למה למה למה???? Confused Confused Confused
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
זאבלא בפורום כעת ת.הצטרפות: 11/05/2003 · הודעות: 44 ·
 

הודעה פורסם: 18/05/2003 - 20:12
נושא ההודעה:

אולי זה בגלל פונקצית
()sleep ?

_________________
חיים רק פעם אחת, תמצו את זה.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
chenlevyלא בפורום כעת ת.הצטרפות: 20/03/2002 · הודעות: 246 · מיקום: אשדות יעקב איחוד
 

הודעה פורסם: 18/05/2003 - 21:44
נושא ההודעה:

הייתי מצפה שהתוכנית הזאת תרוץ במשך 5 שניות. 15 זה בהחלט יותר מדי. אכן, קריאות ה- sleep הן האחראיות הכמעט בלעדיות לזמן הריצה.
בנוסף לכך מומלץ לקרוא באב ל- wait או waitpid לפני יציאה.

_________________
חן לוי
דוא"ל: whatsup at chenlevy dot com
טביעת האצבע של המפתח הציבורי: E547 54F9 0246 6533 66B1 8A58 5D9D CF61 2322 0E21
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 01/08/2003 - 04:45
נושא ההודעה:

כמה הערות:
1) אל תגדיר משתנים גלובאלים, כמו שנתת בדוגמה
2) חבל להתקמצן, תיהיה נדיב; int main(void
3) לא בדקת האם fork לא הצליחה. בדוק
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 01/08/2003 - 04:51
נושא ההודעה:

ועוד הערות נוספות:
4) לא ;int pid
pid_t pid, במקום.
5) תוסיף את sys/types.h
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 01/08/2003 - 04:59
נושא ההודעה:

ועוד הערות:
6)
for(int i=0;i<5;i++)

I don't think so.

7)
שימוש לא נכון מספר פעמים בprintf.

אולי יש עוד מספר טעויות, בכל מקרה, אחרי התיקונים, במחשב שלי התכנית פעלה כצפוי.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
הצגת הודעות מלפני:     
מעבר אל:  
כל הזמנים הם GMT + 2 שעות
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
PNphpBB2 © 2003-2004 

תוכן הדיון

  1. slayter
  2. זאב
  3. chenlevy
  4. אורח
  5. אורח
  6. אורח