Professional Documents
Culture Documents
Mohamed Saad
Day1
1/2
our !irs" Linux C Program# Command$Line Argumen"s# %nvironmen" varia&'es# (ser )n*orma"ion# +os" )n*orma"ion#
Mohamed Saad
Day1
2- Process Control.
2/2
Process )den"i*iers# Dup'ica"ing a Process )mage# S"ar"ing ,e- Processes# .ep'acing a Process )mage#
Mohamed Saad
Day1
1- System and Process Information.
our !irs" Linux C Program# Command$Line Argumen"s# %nvironmen" varia&'es# (ser )n*orma"ion# +os" )n*orma"ion#
Mohamed Saad
2=1/127
(1/ !.
//>
2=2/127
Mohamed Saad
2=</127
(%/ !.
/inc'ude 0s"dio#h1
//2
int : re"urned va'ue o* "he program 2represen"s program s"a"us3 =: succeed3 o"her-ise: *ai'ed#
To prin" re"urn resu'" o* your program Aecho AC
&rgc : argumen" coun" 2 num&er o* argumen"s passed "o "he program7# &rg' : an array o* charac"er poin"ers#
!irs" en"ry is a poin"er "o program name# Su&seDuen" en"ries poin" "o su&seDuen" s"rings on "he command 'ine#
Mohamed Saad 7
2=>/127
( / !.
exi"2=7;
//>
Mohamed Saad
Day1
1- System and Process Information.
our !irs" Linux C Program# Command$Line Argumen"s# %nvironmen" varia&'es# (ser )n*orma"ion# +os" )n*orma"ion#
Mohamed Saad
2=J/127
Command-Line &rguments
in *i'e Eechoarg#cF
(1/2!
/inc'ude 0s"dio#h1 /inc'ude 0s"d'i&#h1 in" main2in" argc3 char 4argv567 8 in" i; *or 2i G =; i 0 argc; iHH7 prin"*29argv5Id6: Is:n93 i3 argv5i67; exi"2=7; ?
Mohamed Saad 1
2=K/127
Command-Line &rguments
(2/2!
A #/echoarg arg1 T%ST *oo argv5=6: #/echoarg argv516: arg1 argv526: T%ST argv5<6: *oo A
Mohamed Saad
Day1
1- System and Process Information.
our !irs" Linux C Program# Command$Line Argumen"s# %nvironmen" varia&'es# (ser )n*orma"ion# +os" )n*orma"ion#
Mohamed Saad
2=L/127
(1/ !$
%ach program is a'so passed an environmen" 'is"# LiBe "he argumen" 'is"3 "he environmen" 'is" is an array o* charac"er poin"ers3 -i"h each poin"er con"aining "he address o* a nu''$ "ermina"ed C s"ring# The address o* "he array o* poin"ers is con"ained in "he g'o&a' varia&'e environ: ex"ern char 44environ;
Mohamed Saad
2=M/127
%nvironmen" Lis":
environment pointer environment List environment StrinHOME !home!msaad"0 #$%H :!&sr!'i(!mit!s(in:"0 SHELL !(in!(ash"0 )SE* msaad"0 LO+,$ME msaad"0 ,)LL
environ:
Mohamed Saad
2=P/127
%nvironmen" Naria&'es
(%/ !
/inc'ude 0s"d'i&#h1 char 4ge"env2cons" char 4name7; .e"urns: poin"er "o va'ue associa"ed -i"h name3 ,(LL i* no" *ound
Mohamed Saad
21=/127
%nvironmen" Naria&'es
Se" %nvironmen" va'ue:
( / !
Mohamed Saad
Mohamed Saad
Day1
1- System and Process Information.
our !irs" Linux C Program# Command$Line Argumen"s# %nvironmen" varia&'es# (ser )n*orma"ion# +os" )n*orma"ion#
Mohamed Saad
211/127
(1/1!
pass-d !i'e *ie'ds are on"ained in a pass-d s"ruc"ure "ha" is de*ined in 0p-d#h1
/inc'ude 0p-d#h1 s"ruc" pass-d 4ge"p-uid 2uidT" uid7; s"ruc" pass-d 4ge"p-nam 2cons" char 4name7;
Bo"h re"urn: poin"er i* QR3 ,(LL on error Mohamed Saad 1
Day1
1- System and Process Information.
our !irs" Linux C Program# Command$Line Argumen"s# %nvironmen" varia&'es# (ser )n*orma"ion# +os" )n*orma"ion#
Mohamed Saad
212/127
(1/1!
Mohamed Saad
Day1
2- Process Control.
Process )den"i*iers# Dup'ica"ing a Process )mage# S"ar"ing ,e- Processes# .ep'acing a Process )mage#
Mohamed Saad
Process Con"ro'
Process )den"i*iers
(1/1!
pidT" ge"ppid2void7;
.e"urns: paren" process )D o* ca''ing process
uidT" ge"uid2void7;
.e"urns: rea' user )D o* ca''ing process
gidT" ge"gid2void7;
.e"urns: rea' group )D o* ca''ing process 2
Mohamed Saad
Day1
2- Process Control.
Process )den"i*iers# Dup'ica"ing a Process )mage# S"ar"ing ,e- Processes# .ep'acing a Process )mage#
Mohamed Saad
Process Con"ro'
(1/,!
An exis"ing process can crea"e a ne- one &y ca''ing "he *orB *unc"ion#
Mohamed Saad
Process Con"ro'
(2/,!
5hi'd #ro/ess
Mohamed Saad
Process Con"ro'
(%/,!
An exis"ing process can crea"e a ne- one &y ca''ing "he *orB *unc"ion#
Mohamed Saad
Process Con"ro'
pidT" ne-Tpid; ne-Tpid G *orB27; s-i"ch2ne-Tpid78 case $1: /4%rror4/ &reaB; case =: /4Chi'd4/ &reaB; de*au'" : /4Paren"4/ ?
Mohamed Saad
Process Con"ro'
(,/,!
"he chi'd process -i'' &e -ri""en "o "he 'oca"ion "o -hich i" poin"s
Mohamed Saad
Mohamed Saad
Day1
2- Process Control.
Process )den"i*iers# Dup'ica"ing a Process )mage# S"ar"ing ,e- Processes# .ep'acing a Process )mage#
Mohamed Saad
Process Con"ro'
(1/1!
ou can cause a program "o run *rom /inc'ude 0s"d'i&#h1 in" sys"em 2cons" char 4cmds"ring7;
Mohamed Saad
Day1
2- Process Control.
Process )den"i*iers# Dup'ica"ing a Process )mage# S"ar"ing ,e- Processes# .ep'acing a Process )mage#
Mohamed Saad
Process Con"ro'
(1/2!
Uhen a process ca''s one o* "he exec *unc"ions3 "ha" process is comp'e"e'y rep'aced &y "he ne- program3 and "he ne- program s"ar"s execu"ing a" i"s main *unc"ion# The process )D does no" change across an exec3 &ecause a ne- process is no" crea"ed; exec mere'y rep'aces "he curren" process i"s "ex"3 da"a3 heap3 and s"acB segmen"s -i"h a &rand ne- program *rom disB#
Mohamed Saad
Process Con"ro'
(2/2!
/inc'ude 0unis"d#h1
in" exec'2cons" char 4pa"hname3 cons" char 4arg=3 in" execv2cons" char 4pa"hname3 char 4cons" argv 567;
Mohamed Saad
Mohamed Saad
Mohamed Saad
Mohamed Saad