עבור לתוכן

how do i get my program path on C

Featured Replies

פורסם

how do i get my program path on C?

thanx

פורסם

אי אפשר להבין כלום מהכותרת וגם מתוכן ההודעה.

פורסם

It is not a pure ANSI C task

so it is depended on the Operation System and the compiler manufacturer

if you'r on windows and have a microsoft compiler

this might work for you

#include "stdafx.h"
#include <direct.h>


int _tmain(int argc, _TCHAR* argv[])
{
char buffer[1000];
getcwd(buffer,1000);
return 0;
}

פורסם

יש לך את זה ב-argv[0]?

פורסם

בARGV[0] יש את שם התוכנית, ולא את כל הנתיב.

פורסם

אני הבנתי שהוא מבקש את הכתובת של התוכנית, אבל יכול להיות שהוא מבקש רק את הספריה

חוץ מזה, אם מקבלים את שם התוכנית או את כל הכתובת שלה זה כבר תלוי בסביבה

פורסם

לא בargv[0] יש את שם התוכנית וגם את הpath של התוכנית לודגמא:

C:\Pro\Temp\My_prog.cc

פורסם

לא בהכרח.

זה תלוי איך הרצת את התכנית - argv מכיל בדיוק את שורת הפקודה שלך.

אם הרצת את התכנית מהמיקום שלה, אז argv[0] יכיל רק את השם שלה.

פורסם

אני לא יודע תכנתתי בlinux (יכול להיות בגלל זה)

פורסם

בבדיקה של התקן מסתבר שהערכים ב-argv הם תלויי מימוש. התקן מגדיר שה-program name יהיה ב-argv[0] (אם argc>0) אבל הוא בפירוש מגדיר שזה implementation defined.

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

לצערי מי שרוצה לברר את הנתיב המלא לתוכנה שלו, יצטרך למצוא API לא פורטבילי (או לפחות לא פורטבילי לחלוטין).

פורסם

יכולים לקמפל במיוחד לכל סביבת עבודה עם מקרואים. ד.א. בלינוקס מקבלים אם שם התוכנית(לפחות בREDHAT7/8/9).

פורסם

לא יודע אני ניסיתי במאנדריק 10 (סליחה על שגיעות הכתיב)

פורסם

זה כמעט הכי לא פורטבילי שיש - זה יעבוד רק ב-windows.

אבל אם זה מספיק טוב בשבילך, אז למה לא?

ארכיון

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

דיונים חדשים