Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » Developing U++ » U++ Developers corner » Different getenv("PATH") and $PATH on macos M1 (for libclang.dylib)
Re: Different getenv("PATH") and $PATH on macos [message #59493 is a reply to message #59491] Fri, 06 January 2023 00:05 Go to previous messageGo to previous message
fudadmin is currently offline  fudadmin
Messages: 1321
Registered: November 2005
Location: Kaunas, Lithuania
Ultimate Contributor
Administrator
Novo wrote on Thu, 05 January 2023 17:47
fudadmin wrote on Wed, 04 January 2023 23:43
Novo wrote on Thu, 05 January 2023 01:23
Relevant information: How to set PATH for Finder-launched applications


I had seen that link before I posted but I could not to digest. That's why I posted here. It is not about setting the PATH. It is about getting the PATH. We are not going to ask every theide user to set "sudo launchctl config user path", aren't we? Moreover, the PATH is set. I can get it on terminal with 'echo $PATH' without problems. The questions is - how to get it programatically with upp the right way. getenv used inside ide is the wrong way.
P.S. for some reasons this doesn't work:
String path = Sys("echo $PATH");

//gives path="$PATH";

echo is excluded...
More info on this https://stackoverflow.com/questions/36326868/getting-environ ment-variable-path-in-linux-using-c-in-eclipse

It was supposed to be a hint.
Macos doesn't seem to run a login shell when you log into an account. This is why PATH is not set.
If you check Macos Terminal settings you'll find "on launch" setting. By default it runs a login shell.
Basically, you log into system each time you launch a terminal Smile

Related info:
man opendirectoryd
     Open Directory forms the foundation of how Mac OS X accesses all authoritative configuration information
     (users, groups, mounts, managed desktop data, etc.).  This allows use of virtually any directory system
     via Apple and third party modules.

PATH shouldn't be used with Macos GUI apps, IMHO.


I really appreciate your answers, Novo. It is always good to have more opinions and it be really interesting to find out
what function Apple uses for their needs. But.
Quote:

This is why PATH is not set.


No. The PATH is set. It is only NOT correctly retrieved with the getenv("PATH") function. Or let'say it is the other PATH set.

But in Terminal one can get the correct one. And I tested it.
And it is also possible to get the correct one with what Oblivion correctly corrected:

Sys("sh -c \'echo $PATH\'");


Do any opendirectoryd API functions/classes exist?
Or anything else what could correctly replace getenv? Or $PATH?
Or any code which is more politically and/or programatically correct than this:
Sys("sh -c \'echo $PATH\'");

?
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Compilation on Linux +GUI,X11
Next Topic: Cannot link with obj generated on custom build step.
Goto Forum:
  


Current Time: Tue Apr 29 22:41:05 CEST 2025

Total time taken to generate the page: 0.01039 seconds