שתי שאלות כלליות ב- ++C - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

שתי שאלות כלליות ב- ++C


attiass

Recommended Posts

שלום לכולם

אני רוצה להוסיף לתוכנה שלי איזהשהו שעון / טיימר / בקר כך שבכל פרק זמן קבוע ,נגיד כל דקה, התוכנה תבצע איזשהי רוטינה.

איך עושים כזה דבר? זאת אומרת אני רוצה ליצור משהו דינמי פחות או יותר.

שאלה שנייה: ב ניתן לקבל מידע על קובץ מתי הוא שונה בפעם האחרונה , ז"א modified date ,איך אפשר לקבל את זה ב- ++C

תודה מראש.

קישור לתוכן
שתף באתרים אחרים

POSIX הוא סטנדרט נחמד אבל הוא לא ANSI, ואי אפשר להניח שבכל מקום יש תמיכת POSIX.

ווינדוס, לדוגמא, הוא לא POSIX ויש לא תמיכה "עקומה" בכל מה שקשור.

טיימרים זה חלק מהסטנדרט של C, ולכן כל פלטפורמה עושה את זה אחרת.

פלטפורמות תואמות POSIX יש להם שיטה מסויימת לעשות את זה.

קישור לתוכן
שתף באתרים אחרים

לגבי הטיימר - אתה יכול ליצור ת'רד שמבצע Sleep למשך הזמן שרצית, ואז קורא לפונקציה. לצורך העניין, אפשר להגדיר מחלקה כזאת:


class CyclicTask
{
public:
// CTor and DTor, as usual
void SetFuncToCall (func_type theFuncToCall);
void beginCycle(){
CreateThread(...);
while (whatever)
{
sleep(m_callingInterval);
theFuncToCall();
}
}
private:
func_type m_funcToCall;
};

כמובן, זה לא יעבוד, כתבתי בעיקר את הממשק ולא הגדרתי מה סוג הפונקציה, וכו'.

אם אתה עובד ב-C++, הדבר היפה יותר יהיה להגדיר בתוך המחלקה הזאת, מחלקה שיש לה פונקציה שאותה אתה רוצה להריץ, ולקבל רפרנס (או מצביע) לאובייקט מאותה מחלקה.

אז ניתן לרשת מהמחלקה ולממש את מה שאתה רוצה לעשות, כולל שמירת מצב בקלות - ולהעביר את האובייקט שלך לאובייקט שמנהל את הזמנים. זאת הדרך היפה לעשות את זה, אבל זה אוברקיל אם אתה רוצה משהו ממש פשוט.

כמו כן, אני לא זוכר בע"פ את הסינטקס המדוייק של פתיחת ת'רד חדש, אז גם זה בערך, אבל נדמה לי שהרעיון ברור...

קישור לתוכן
שתף באתרים אחרים

ניהול ת'רדים באופן כללי זה מסובך, בפרט ב-. בקשר לצרכים שלו - ה-API מאוד בסיסי ולא צריך לדעת יותר מדי. לדעתי זה יתרום לו יותר, מבחינת הבנה, מה בדיוק קורה, לעשות את זה כמו שהצעתי, בגדול.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...