|
About
My Infrequently Updated Blog. The web-based journal of M. Forde, computer nerd, endurance athlete, and DeLorean owner
contact
Subscribe
Subscribe to a syndicated feed of my weblog,
brought to you by the wonders of RSS.
Flavors
There's more than one way to view this weblog; try these flavors on
for size.
index
circa 1993
Sections
main
musings
running
DeLorean
code
unix
album
TBM
Archives
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011
2010
2009
2008
2007
Disclaimers, Copyrights, Privacy, Etc.
ToS
Copyrights
Links
olix0r.net
netmeister.org
Giraffes
Eat. Run. Sleep.
|
|
|
chdir(2)
So today at work another developer many years my senior, with many more years
experience than I, came to me with a Unixy problem.
"When I have a program, how can I have it so the current working directory
for all processes it starts isn't the one that it started in?"
"chdir."
"No, I want so that if this process starts something like ls, when ls stats
'dot' I want 'dot' to be the directory that process wants it to be, not the
directory that process was started from."
After about 15 minutes of me suggesting chdir while he said that's not what
he wanted but then describing chdir, I finally wrote something along the lines
of the following
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int
main (int argc, char *argv[])
{
system("/bin/pwd");
system("/bin/ls");
chdir("/tmp");
system("/bin/pwd");
system("/bin/ls");
chdir("/etc");
system("/bin/pwd");
system("/bin/ls");
chdir("/");
system("/bin/pwd");
system("/bin/ls");
return 0;
}
I compiled that, ran it, showed him the output. He said, "Yeah, that's
what I want to do."
I showed him the code.
"chdir does that?"
[/unix]
[permanent link]
|
|