main () , , .
main :
main (int arg, char * argv [], char * envp [])
1 2 3
1 -
2 -
3 -
- UNIX : . , NULL. , , .
, . . (, , .)
' . , ls, :
%ls s /
ls . - ' , , ls. - -s /.
argv [] arg
argv [0] ,
argv [1] . . argv [argc-1].
:
void main (int argc, char * argv [], char * envp []);
$ a.out a1 a2 a3
main a.out
argc = 4 / * * /
argv [0] = "a.out"
argv [1] = "a1"
argv [2] = "a2"
argv [3] = "a3"
argv [4] = NULL
, argc argv . argc argv.
, ' , .
# Include <stdio.h>
int main (int argc, char * argv [])
{printf("The name of this program is '% s'. \ N", argv [0]);
printf ("This program was invoked with% d arguments. \ n ", argc-1);
/ * ? * /
If (argc> 1)
{int i;
printf ("The arguments are: \ n");.
for (i = 1; i <argc; + + i)
printf ("% s \ n", argv [i]);}
return 0;}
2.
UNIX , , . ϳ -. ֳ . . .
|
|
:
USER - ' ;
HOME - ;
PATH - , .
POSIX.1 envp[] main ,
int main (int argc, char * argv [], char * envp []);
ANSI C . environ:
, .
# Include <stdio.h>
extern char ** environ;
int main (int argc, char * argv [])
{char ** var;
for (var = environ; * var! = NULL; + + var)
printf (" % s \ n ", * var);
return 0;}
getenv() putenv().
# Include <stdlib.h>
char * getenv (const char * name)
int putenv (const char * string)
. , , 䳿, , .
setenv() unsetenv() .
( , ). , , , .
3.
1. ( ).
2. ( ).
3. , ' - ( , ); , , ( , ).
4. , .
5. ; - t , , ; .
6. ; - t , , ; .
7. : , ; , , ; , , ' , .
8. , ' , -: d , ; p , , c , ' .
9. ﳿ <_>1 - (, PATH Path1 ).
|
|
10. ', , , , , (, Editor=mcedit mcedit=editor). .
11. MYENVS - "1{;2;3...}" ( ). .
12. NEWENV - ":". - ' .
13. PATH (' ), . ( ). .
14. ENVVARS , ( ' ''-'', ' - '';'', , Envvars=backspace-delete;BASH-/bin/bash;...).
15. ' PATHL , PATH.
16. , , .
17. : .
18. : ' ( ).
19. , ; .
20. , ' , ( ).
21. , , ', , ( ' ), .
22. , "=".
23. , () .
24. ; LENN LENV .
25. , , .