פורסם 2006 באוגוסט 2119 שנים It is not a pure ANSI C taskso it is depended on the Operation System and the compiler manufacturerif you'r on windows and have a microsoft compilerthis might work for you#include "stdafx.h"#include <direct.h>int _tmain(int argc, _TCHAR* argv[]){ char buffer[1000]; getcwd(buffer,1000); return 0;}
פורסם 2006 באוגוסט 2219 שנים אני הבנתי שהוא מבקש את הכתובת של התוכנית, אבל יכול להיות שהוא מבקש רק את הספריהחוץ מזה, אם מקבלים את שם התוכנית או את כל הכתובת שלה זה כבר תלוי בסביבה
פורסם 2006 באוגוסט 2319 שנים לא בargv[0] יש את שם התוכנית וגם את הpath של התוכנית לודגמא:C:\Pro\Temp\My_prog.cc
פורסם 2006 באוגוסט 2319 שנים לא בהכרח.זה תלוי איך הרצת את התכנית - argv מכיל בדיוק את שורת הפקודה שלך.אם הרצת את התכנית מהמיקום שלה, אז argv[0] יכיל רק את השם שלה.
פורסם 2006 באוגוסט 2319 שנים בבדיקה של התקן מסתבר שהערכים ב-argv הם תלויי מימוש. התקן מגדיר שה-program name יהיה ב-argv[0] (אם argc>0) אבל הוא בפירוש מגדיר שזה implementation defined.בחלק מהמקומות תקבלו נתיב מלא, ובחלק תקבלו רק את שם הפקודה שהוכנסה. ובחלק לא תקבלו כלום.לצערי מי שרוצה לברר את הנתיב המלא לתוכנה שלו, יצטרך למצוא API לא פורטבילי (או לפחות לא פורטבילי לחלוטין).
פורסם 2006 באוגוסט 2319 שנים יכולים לקמפל במיוחד לכל סביבת עבודה עם מקרואים. ד.א. בלינוקס מקבלים אם שם התוכנית(לפחות בREDHAT7/8/9).
פורסם 2006 באוגוסט 2919 שנים מחבר מצאתי לינק של דבר שהצליח אצלי http://www.codechamber.com/tutorials/cpptechniques/get_app_path.phpהוא לא משתמש ב argv[0] ואני לא יודע אם זה תומך בכל מערכת אבל אצלי זה עבד
פורסם 2006 באוגוסט 2919 שנים זה כמעט הכי לא פורטבילי שיש - זה יעבוד רק ב-windows.אבל אם זה מספיק טוב בשבילך, אז למה לא?
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.