From bc6e63027e8ea4b058dc3741f09c21cc4dc24f7a Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Tue, 23 Sep 2025 09:19:46 +0200 Subject: [PATCH] Added a function to get the process ID --- lib/process/const_linux_arm.q | 1 + lib/process/const_linux_x86.q | 1 + lib/process/fork_mac.q | 6 +----- lib/process/id_unix.q | 3 +++ lib/process/id_windows.q | 9 +++++++++ 5 files changed, 15 insertions(+), 5 deletions(-) create mode 100644 lib/process/id_unix.q create mode 100644 lib/process/id_windows.q diff --git a/lib/process/const_linux_arm.q b/lib/process/const_linux_arm.q index b3f8929..434c94c 100644 --- a/lib/process/const_linux_arm.q +++ b/lib/process/const_linux_arm.q @@ -1,5 +1,6 @@ const { _clone = 220 _execve = 221 + _getpid = 172 _wait4 = 260 } \ No newline at end of file diff --git a/lib/process/const_linux_x86.q b/lib/process/const_linux_x86.q index 9ac338a..2ac4d11 100644 --- a/lib/process/const_linux_x86.q +++ b/lib/process/const_linux_x86.q @@ -1,5 +1,6 @@ const { _clone = 56 _execve = 59 + _getpid = 39 _wait4 = 61 } \ No newline at end of file diff --git a/lib/process/fork_mac.q b/lib/process/fork_mac.q index f6bb188..3c7d9e7 100644 --- a/lib/process/fork_mac.q +++ b/lib/process/fork_mac.q @@ -1,13 +1,9 @@ fork() -> int { pid := syscall(_fork) - if pid == getpid() { + if pid == id() { return 0 } return pid -} - -getpid() -> int { - return syscall(_getpid) } \ No newline at end of file diff --git a/lib/process/id_unix.q b/lib/process/id_unix.q new file mode 100644 index 0000000..2210ed4 --- /dev/null +++ b/lib/process/id_unix.q @@ -0,0 +1,3 @@ +id() -> int { + return syscall(_getpid) +} \ No newline at end of file diff --git a/lib/process/id_windows.q b/lib/process/id_windows.q new file mode 100644 index 0000000..2badc52 --- /dev/null +++ b/lib/process/id_windows.q @@ -0,0 +1,9 @@ +id() -> int { + return kernel32.GetCurrentProcessId() +} + +extern { + kernel32 { + GetCurrentProcessId() -> int + } +} \ No newline at end of file -- 2.51.2