spawn_ext.h 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /* POSIX spawn extensions. Linux version.
  2. Copyright (C) 2023-2026 Free Software Foundation, Inc.
  3. This file is part of the GNU C Library.
  4. The GNU C Library is free software; you can redistribute it and/or
  5. modify it under the terms of the GNU Lesser General Public
  6. License as published by the Free Software Foundation; either
  7. version 2.1 of the License, or (at your option) any later version.
  8. The GNU C Library is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  11. Lesser General Public License for more details.
  12. You should have received a copy of the GNU Lesser General Public
  13. License along with the GNU C Library; if not, see
  14. <https://www.gnu.org/licenses/>. */
  15. #ifndef _SPAWN_H
  16. # error "Never include <bits/spawn-ext.h> directly; use <spawn.h> instead."
  17. #endif
  18. __BEGIN_DECLS
  19. #ifdef __USE_MISC
  20. /* Get the cgroupsv2 the attribute structure. */
  21. extern int posix_spawnattr_getcgroup_np (const posix_spawnattr_t *
  22. __restrict __attr,
  23. int *__restrict __cgroup)
  24. __THROW __nonnull ((1, 2));
  25. /* Sore the cgroupsv2 the attribute structure. */
  26. extern int posix_spawnattr_setcgroup_np (posix_spawnattr_t *__attr,
  27. int __cgroup)
  28. __THROW __nonnull ((1));
  29. /* Spawn a new process executing PATH with the attributes describes in *ATTRP.
  30. Before running the process perform the actions described in FACTS. Return
  31. a PID file descriptor in PIDFD if process creation was successful and the
  32. argument is non-null.
  33. This function is a possible cancellation point and therefore not
  34. marked with __THROW. */
  35. extern int pidfd_spawn (int *__restrict __pidfd,
  36. const char *__restrict __path,
  37. const posix_spawn_file_actions_t *__restrict __facts,
  38. const posix_spawnattr_t *__restrict __attrp,
  39. char *const __argv[__restrict_arr],
  40. char *const __envp[__restrict_arr])
  41. __nonnull ((2, 5));
  42. /* Similar to `pidfd_spawn' but search for FILE in the PATH.
  43. This function is a possible cancellation point and therefore not
  44. marked with __THROW. */
  45. extern int pidfd_spawnp (int *__restrict __pidfd,
  46. const char *__restrict __file,
  47. const posix_spawn_file_actions_t *__restrict __facts,
  48. const posix_spawnattr_t *__restrict __attrp,
  49. char *const __argv[__restrict_arr],
  50. char *const __envp[__restrict_arr])
  51. __nonnull ((1, 2, 5));
  52. #endif /* __USE_MISC */
  53. __END_DECLS