一尘不染

如何设置父进程的工作目录?

linux

正如标题所示,我们正在编写一个Unix风格的shell实用程序 U ,该实用程序应该从bash中调用(在大多数情况下)。

U 到底如何更改bash(或一般来说是父级)的工作目录?

PS Shell实用程序 chdir 成功完成了相同的工作,因此必须有一种编程的方法来达到这种效果。


阅读 293

收藏
2020-06-02

共1个答案

一尘不染

不要这样

FILE *p;
char cmd[32];
p = fopen("/tmp/gdb_cmds", "w");
fprintf(p, "call chdir(\"..\")\ndetach\nquit\n");
fclose(p);
sprintf(cmd, "gdb -p %d -batch -x /tmp/gdb_cmds", getppid());
system(cmd);

尽管注意Bash的命令已缓存并且不会注意到,但它 可能会 起作用pwd

2020-06-02