|
|
1.1 ! root 1: .TH ENV 3 ! 2: .SH NAME ! 3: env \- environment variables ! 4: .SH SYNOPSIS ! 5: .nf ! 6: .B bind #e /env ! 7: ! 8: .BI /env/ var1 ! 9: .BI /env/ var2 ! 10: ... ! 11: .fi ! 12: .SH DESCRIPTION ! 13: The ! 14: .I env ! 15: device serves a one-level directory containing files with arbitrary names ! 16: and contents. ! 17: The intention is that the file name is the name of an ! 18: .I environment variable ! 19: (see ! 20: .IR rc (1)), ! 21: and the content is the variable's current value. ! 22: .PP ! 23: When a ! 24: .IR fork (2) ! 25: system call creates a new process, both the parent and the ! 26: child continue to see exactly the same files in the ! 27: .I env ! 28: device: changes made in either process can be noticed by the other. ! 29: In contrast, an ! 30: .B rfork ! 31: system call with the ! 32: .B RFENVG ! 33: bit set (see ! 34: .IR fork (2)) ! 35: causes a split: initially both process groups see the ! 36: same environment files, but any changes made in one process group ! 37: cannot be noticed by the other. ! 38: An ! 39: .B rfork ! 40: with ! 41: .B RFCENVG ! 42: splits and then clears the environment. ! 43: .SH SEE ALSO ! 44: .IR rc (1), ! 45: .IR fork (2) ! 46: .SH SOURCE ! 47: .B /sys/src/9/port/devenv.c ! 48: .SH BUGS ! 49: A write starting at an offset after the current extent of a file ! 50: yields an error instead of zero filling.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.