I am trying to open a file in c++ and the server the progam in running on is based on tux.
string filename = "../dir/input.txt"; works but
string filename = "~jal/dir1/dir/input.txt"; fails
Is there any way to open a file in c++ when the filename provided is in the second format?
The ~jal
expansion is performed by the shell (bash/csh/whatever), not by the system itself, so your program is trying to look into the folder named ~jal/
, not /home/jal/
.
I'm not a C coder, but getpwent()
may be what you need.
You could scan the string, replacing ~user
by the appropriate directory.
The POSIX function wordexp
does that, and a few other things
$HOME
$(echo foo)
(can be disabled)$((3+4))
~/a ~/b
into two words*.cpp
"~/a ~/b"
remains thatIf you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With