mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-21 20:15:17 +00:00
Add /proc/PID/cwd, a symlink to the process's current directory.
This commit is contained in:
parent
a768c2b919
commit
36b3dc6c32
Notes:
sideshowbarker
2024-07-19 16:11:24 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/36b3dc6c320
2 changed files with 9 additions and 1 deletions
|
@ -138,6 +138,13 @@ ByteBuffer procfs$pid_exe(Process& process)
|
|||
return VirtualFileSystem::the().absolutePath(inode).toByteBuffer();
|
||||
}
|
||||
|
||||
ByteBuffer procfs$pid_cwd(Process& process)
|
||||
{
|
||||
ProcessInspectionHandle handle(process);
|
||||
auto inode = process.cwdInode();
|
||||
return VirtualFileSystem::the().absolutePath(inode).toByteBuffer();
|
||||
}
|
||||
|
||||
void ProcFileSystem::addProcess(Process& process)
|
||||
{
|
||||
InterruptDisabler disabler;
|
||||
|
@ -151,6 +158,7 @@ void ProcFileSystem::addProcess(Process& process)
|
|||
addFile(createGeneratedFile("fds", [&process] { return procfs$pid_fds(process); }), dir.index());
|
||||
if (process.executableInode().isValid())
|
||||
addFile(createGeneratedFile("exe", [&process] { return procfs$pid_exe(process); }, 00120777), dir.index());
|
||||
addFile(createGeneratedFile("cwd", [&process] { return procfs$pid_cwd(process); }, 00120777), dir.index());
|
||||
}
|
||||
|
||||
void ProcFileSystem::removeProcess(Process& process)
|
||||
|
|
|
@ -186,7 +186,7 @@ static int sh_cd(int argc, const char** argv)
|
|||
const char* path = canonicalPath.string().characters();
|
||||
|
||||
struct stat st;
|
||||
int rc = lstat(path, &st);
|
||||
int rc = stat(path, &st);
|
||||
if (rc < 0) {
|
||||
printf("lstat(%s) failed: %s\n", path, strerror(errno));
|
||||
return 1;
|
||||
|
|
Loading…
Add table
Reference in a new issue