Я бы сказал, что называть getpid()
"системным вызовом linux" - это вводить в заблуждение. Это создает впечатление, что это специфический для Linux системный вызов, а это не так. На самом деле, getpid()
и многие другие системные вызовы определены POSIX, и вы найдете их реализованными и в Linux, и в MacOS, и во многих других системах, с идентичным поведением.
Большинство системных вызовов или даже библиотечных функций языка C, которые вы будете использовать в обычном программном обеспечении, определены стандартами, такими как POSIX и ANSI C, и вы найдете их реализованными с одинаковым поведением на многих различных операционных системах. Портативное программное обеспечение - это программное обеспечение, которое придерживается этого набора общих системных вызовов и функций, которые широко доступны.
Linux также имеет специфические для Linux системные вызовы. MacOS также имеет специфические для MacOS системные вызовы. Ни один из них, разумеется, не будет работать в противоположной операционной системе. В manpages для таких системных вызовов обычно указывается, что они не переносимы. Кроме того, часто они существуют как детали низкоуровневой реализации, и большинству программ не нужно их использовать, что облегчает переносимость большинства программ.
Вы должны переопределить скомпилированное значение -для "exec", например,
LS_COLORS="*.py=00;33:fi=00;00:di=01;34:ex=0" export LS_COLORS