Arbetssökväg i MacOS X (C/C++)
Arbetssökväg i MacOS X (C/C++)
Börjar nästan att bli galen här, sitter och leker lite med C/C++ i MacOS X (har inte programmerat såå mycket i det än, bara varit mac:are i ca ett halvår), och kan inte hitta ett sätt att hitta sökvägen till programmet! Vill läsa in en fil som ligger i samma sökväg som programmet, men det verkar inte fungera... Kan inte hitta ett sätt att hitta sökvägen till programmet! Någon som vet?
Re: Arbetssökväg i MacOS X (C/C++)
Menar du ungefär såhär?robin. wrote:Börjar nästan att bli galen här, sitter och leker lite med C/C++ i MacOS X (har inte programmerat såå mycket i det än, bara varit mac:are i ca ett halvår), och kan inte hitta ett sätt att hitta sökvägen till programmet! Vill läsa in en fil som ligger i samma sökväg som programmet, men det verkar inte fungera... Kan inte hitta ett sätt att hitta sökvägen till programmet! Någon som vet?
Du har ett program (/foo/bar/program) och en datafil (/foo/bar/datafil), alltså ett program och en datafil i samma katalog och vill öppna datafilen oavsett vad current working directory är för en process skapad av program-imagen?
Isåfall har du 2 sätt hitta katalogen som filerna ligger i (/foo/bar) beroende på hur programmet startats.
1) Programmet startades med dess absoluta eller relativa pathname (till exempel /foo/bar/program eller ../bar/program)
Strippa bort "program" från argv[0].
2) Programmet startades med dess filnamn eftersom dess katalog finns i PATH
Leta igenom PATH tills du hittar en katalog som innehåller en exekverbar fil med namnet "program".
Nu har du katalogen (relativ eller absolut) som filerna ligger i och kan antingen chdir() till den eller koppla på "datafil" och öppna direkt.
(Får man fråga varför du behöver göra detta?)
Det där var precis vad jag letade efter! Tackar o bugar!linc wrote:Titta på mansidan för getcwd().
Har hittat en annan grej som jag funderar över, hur man hittar sökvägen till Resource-katalogen ("innuti" foo.app).. Känns som att man borde kunna köra getcwd() och sen lägga till "foo.app/Resources", eller? Känns samtidigt lite fult.. vet att det finns en funktion för det i Objective-C, men jag känner inte att jag har tid att sätta mig in i ett nytt språk för tillfället..
Ja precis! Ursäkta om jag uttryckte mig lite luddigt..t-man wrote:Då vill du med andra ord INTE "hitta ett sätt att hitta sökvägen till programmet!" utan ha namnet på processens current working direcoty.robin. wrote:Det där var precis vad jag letade efter! Tackar o bugar!linc wrote:Titta på mansidan för getcwd().