POSIX_S...ETPGROUP(3POSIX)

πŸ’– POSIX Programmer's Manual πŸ’–

okay bestie, so this page is POSIX_S...ETPGROUP(3POSIX) from the POSIX Programmer's Manual, and we're gonna get through it together, no stress ✨


🌸 PROLOG 🌸

So real talk first: this manual page is part of the POSIX Programmer's Manual. The Linux implementation of this interface may differ (go check the corresponding Linux manual page for the deets on Linux behavior), or honestly the interface may just not be implemented on Linux at all. Not every system shows up to the party πŸ’…


✨ NAME ✨

posix_spawnattr_getpgroup, posix_spawnattr_setpgroup β€” get and set the spawn-pgroup attribute of a spawn attributes object (ADVANCED REALTIME)

yes the NAME is the whole vibe, it's giving "getter and setter, but make it realtime" 🫢


πŸŽ€ SYNOPSIS πŸŽ€

#include <spawn.h>

int posix_spawnattr_getpgroup(const posix_spawnattr_t *restrict attr,
    pid_t *restrict pgroup);
int posix_spawnattr_setpgroup(posix_spawnattr_t *attr, pid_t pgroup);

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so, two functions, one job each, iconic behavior:

posix_spawnattr_getpgroup() shall obtain the value of the spawn-pgroup attribute from the attributes object referenced by attr. It's the "hey what's the pgroup set to" girlie πŸ’–

posix_spawnattr_setpgroup() shall set the spawn-pgroup attribute in an initialized attributes object referenced by attr. That's the "okay bestie we're setting it now" energy ✨

Now, what even is the spawn-pgroup attribute? So glad you asked. It represents the process group to be joined by the new process image in a spawn operation β€” but only if POSIX_SPAWN_SETPGROUP is set in the spawn-flags attribute. No flag, no group-joining, that's the rule 🌸

The default value of this attribute shall be zero. zero is the moment, periodt πŸ’…


πŸ”₯ RETURN VALUE πŸ”₯

Upon successful completion, posix_spawnattr_getpgroup() shall return zero and store the value of the spawn-pgroup attribute of attr into the object referenced by the pgroup parameter. Otherwise, an error number shall be returned to indicate the error 😭

Upon successful completion, posix_spawnattr_setpgroup() shall return zero. Otherwise, an error number shall be returned to indicate the error 😭

zero = slay, error number = not slay, that's the whole system


πŸ’€ ERRORS πŸ’€

These functions may fail if:

  • EINVAL β€” The value specified by attr is invalid.

The posix_spawnattr_setpgroup() function may fail if:

  • EINVAL β€” The value of the attribute being set is not valid.
lowkey the same error name showing up twice for two different reasons is very much its own mood, but both are EINVAL and both mean something was invalid, so don't get it twisted πŸ™ˆ

The following sections are informative.


🌈 EXAMPLES 🌈

None.

(we love a section that ate and left no crumbs because there were no crumbs to begin with πŸŽ€)


🧚 APPLICATION USAGE 🧚

Heads up bestie: these functions are part of the Spawn option and need not be provided on all implementations. So if you can't find them, it's not you, it's the implementation πŸ’œ


⭐ RATIONALE ⭐

None.


πŸ’œ FUTURE DIRECTIONS πŸ’œ

None.


🫢 SEE ALSO 🫢

  • posix_spawn()
  • posix_spawnattr_destroy()
  • posix_spawnattr_getsigdefault()
  • posix_spawnattr_getflags()
  • posix_spawnattr_getschedparam()
  • posix_spawnattr_getschedpolicy()
  • posix_spawnattr_getsigmask()

The Base Definitions volume of POSIX.1‐2017, <spawn.h> β€” go read it, iykyk πŸ’–


Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1-2017, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 7, 2018 Edition, Copyright (C) 2018 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the event of any discrepancy between this version and the original IEEE and The Open Group Standard, the original IEEE and The Open Group Standard is the referee document. The original Standard can be obtained online at http://www.opengroup.org/unix/online.html .

Any typographical or formatting errors that appear in this page are most likely to have been introduced during the conversion of the source files to man page format. To report such errors, see https://www.kernel.org/doc/man-pages/reporting_bugs.html .


okay that's the whole page, you ate it up fr fr πŸ’…βœ¨ this was IEEE/The Open Group, 2017, and we were reading POSIX_S...ETPGROUP(3POSIX) the entire time β€” go forth and set your process groups, bestie πŸ¦‹πŸ’–