Download - Linux Programming Lab Record
-
5/21/2018 Linux Programming Lab Record
1/29
L P L R JNTU WORLD [..]
1 B A [JNTU WORLD]
T . O :
1:
P .S 1 : ,
F ,
H
S 2 : T , ( )
$
H
S 03 13:40:15 PST 2006
2:
M .
W ,
. A .
S 1 : ,
F ,
H
S 2 : M
$ + _
$ +
S 3 : T ,
$
H
S 03 13:40:15 PST 2006
S 1 : U , , , . T
..
F , . :
()
( );
S 2 : S CC ( C C )
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
2/29
j
L P L R JNTU WORLD [..]
2 B A [JNTU WORLD]
$ .
I , .
S 3 : T , .
$ .
W
1. ,
.
#!//
E
F L : 1 $
L :
1 $
D :
$
2. .
#!//
$[1] $[2]
'//' 1 2 3 > .
A
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
3/29
j
L P L R JNTU WORLD [..]
3 B A [JNTU WORLD]
/^.//
.
/\(.\)\(.\)$/\2/
. /^\([AZ09]*\) *\([AZ09]*\)/\2\1/
3. ,
.
"L F R, W E P C D"
*
[ $ $ $ ]
$
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
4/29
j
L P L R JNTU WORLD [..]
4 B A [JNTU WORLD]
4.
,
.
$
$
$
5. ,
.
E
[ $ ]
[ $ ]
: $
N : $
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
5/29
j
L P L R JNTU WORLD [..]
5 B A [JNTU WORLD]
6. .
E
[ $ ]
F $
$
D
:
7. .
F
"E : "
=1
=1
[ $ $ ]
=` $ \* $`
=` $ + 1`
"F $ = $"
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
6/29
j
L P L R JNTU WORLD [..]
6 B A [JNTU WORLD]
8. .
. . . .
)
#
## BUFSIZE 1
( , **)
1;
;
;
1=([1],O_RDONLY);
("SS P F\");
((=(1,&,1))>0)
("%",);
/*
(1,&,1); */
(0);
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
7/29
j
L P L R JNTU WORLD [..]
7 B A [JNTU WORLD]
)
#
#
# #
# FALSE 0
# TRUE 1
();
[MAXPATHLEN];
()
,;
**;
_();
(() == NULL )
("E ");
(0);
("C W D = %",);
= (, &, _, );
( _, ".") == 0) ((>_, "..") == 0))
(FALSE);
(TRUE);
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
8/29
j
L P L R JNTU WORLD [..]
8 B A [JNTU WORLD]
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
9/29
j
L P L R JNTU WORLD [..]
9 B A [JNTU WORLD]
)
#
#
##
( , **)
1,2;
,=0;
1=([1],O_RDONLY);
2=([2],S_IWUSR);
(1,2);
([1]); (0);
9.
.
1.
2.
3. ,
4. (N: / )
PROGRAM
#
()
FILE *;
_;
=(,);
(==(FILE*)0)
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
10/29
j
L P L R JNTU WORLD [..]
10 B A [JNTU WORLD]
(,E ( )\);
();
(1);
(())==EOF)
(,E .( )\);
(1);
();
10. .
#
#
#
#
()
DIR *; *;
= (".");
( != NULL)
( = ())
("%\", >_);
();
("C' ");
0;
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
11/29
j
L P L R JNTU WORLD [..]
11 B A [JNTU WORLD]
11. . : 1.
()
(".","",);
("T .");
();
0;
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
12/29
j
L P L R JNTU WORLD [..]
12 B A [JNTU WORLD]
12.
.
#
#
#
#
# BUFSIZE 4096
HANDLE _CS_IN_R = NULL;
HANDLE _CS_IN_W = NULL;
HANDLE _CS_OUT_R = NULL;
HANDLE _CS_OUT_W = NULL;
HANDLE _IF = NULL;
CCP();
WTP();
RFP();
EE(PTSTR);
_( , TCHAR *[])
SECURITY_ATTRIBUTES A;
("\>S .\");
// S IH .
A.L = (SECURITY_ATTRIBUTES);
A.IH = TRUE;
A.SD = NULL;
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
13/29
j
L P L R JNTU WORLD [..]
13 B A [JNTU WORLD]
// C ' STDOUT.
( ! CP(&_CS_OUT_R, &_CS_OUT_W, &A, 0) )
EE(TEXT("SR CP"));
// E STDOUT .
( ! SHI(_CS_OUT_R, HANDLE_FLAG_INHERIT, 0) )
EE(TEXT("S SHI"));
// C ' STDIN.
(! CP(&_CS_IN_R, &_CS_IN_W, &A, 0))EE(TEXT("S CP"));
// E STDIN .
( ! SHI(_CS_IN_W, HANDLE_FLAG_INHERIT, 0) )
EE(TEXT("S SHI"));
// C .
CCP();
// G .
// T .
( == 1)
EE(TEXT("P .\"));
_IF = CF(
[1],
GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_READONLY,
NULL);
( _IF == INVALID_HANDLE_VALUE )
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
14/29
j
L P L R JNTU WORLD [..]
14 B A [JNTU WORLD]
EE(TEXT("CF"));
// W .
// D ' ,
// .
WTP();
( "\>C % STDIN .\", [1]);
// R .
( "\>C STDOUT:\\", [1]);
RFP();
("\>E .\");
// T .
// T , .
0;
CCP()// C STDIN STDOUT.
TCHAR C[]=TEXT("");
PROCESS_INFORMATION PI;
STARTUPINFO SI;
BOOL S = FALSE;
// S PROCESS_INFORMATION .
ZM( &PI, (PROCESS_INFORMATION) );
// S STARTUPINFO .
// T STDIN STDOUT .
ZM( &SI, (STARTUPINFO) );
SI. = (STARTUPINFO);
SI.SE = _CS_OUT_W;
SI.SO = _CS_OUT_W;
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
15/29
j
L P L R JNTU WORLD [..]
15 B A [JNTU WORLD]
SI.SI = _CS_IN_R;
SI.F = STARTF_USESTDHANDLES;
// C .
S = CP(NULL,
C, //
NULL, //
NULL, //
TRUE, //
0, //
NULL, // '
NULL, // '
&SI, // STARTUPINFO &PI); // PROCESS_INFORMATION
// I , .
( ! S )
EE(TEXT("CP"));
// C .
// S // , .
CH(PI.P);
CH(PI.T);
WTP()
// R ' STDIN.
// S .
DWORD R, W;
CHAR B[BUFSIZE];
BOOL S = FALSE;
(;;)
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
16/29
j
L P L R JNTU WORLD [..]
16 B A [JNTU WORLD]
S = RF(_IF, B, BUFSIZE, &R, NULL);
( ! S R == 0 ) ;
S = WF(_CS_IN_W, B, R, &W, NULL);
( ! S ) ;
// C .
( ! CH(_CS_IN_W) )
EE(TEXT("SIW CH"));
RFP()
// R ' STDOUT
// ' STDOUT.
// S .
DWORD R, W;
CHAR B[BUFSIZE];
BOOL S = FALSE;
HANDLE PSO = GSH(STD_OUTPUT_HANDLE);
// C
// , .
// T
// .
(!CH(_CS_OUT_W))
EE(TEXT("SOW CH"));
(;;)
S = RF( _CS_OUT_R, B, BUFSIZE, &R, NULL);
( ! S R == 0 ) ;
S = WF(PSO, B,
R, &W, NULL);
(! S ) ;
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
17/29
j
L P L R JNTU WORLD [..]
17 B A [JNTU WORLD]
EE(PTSTR F)
// F , ,// .
LPVOID MB;
LPVOID DB;
DWORD = GLE();
FM(
FORMAT_MESSAGE_ALLOCATE_BUFFER
FORMAT_MESSAGE_FROM_SYSTEM FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &MB,
0, NULL );
DB = (LPVOID)LA(LMEM_ZEROINIT,
(((LPCTSTR)MB)+((LPCTSTR)F)+40)*(TCHAR));SCP((LPTSTR)DB,
LS(DB) / (TCHAR),
TEXT("% %: %"),
F, , MB);
MB(NULL, (LPCTSTR)DB, TEXT("E"), MB_OK);
LF(MB);
LF(DB);
EP(1);
.
.
. .
.
#
#
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
18/29
j
L P L R JNTU WORLD [..]
18 B A [JNTU WORLD]
# BUFSIZE 4096
()
CHAR B[BUFSIZE];
DWORD R, W;
HANDLE S, S;
BOOL S;
S = GSH(STD_OUTPUT_HANDLE);
S = GSH(STD_INPUT_HANDLE);
(
(S == INVALID_HANDLE_VALUE) (S == INVALID_HANDLE_VALUE)
)
EP(1);
// S ' .
("\ ** T . ** \");
// T .
// I .// L .
(;;)
// R .
S = RF(S, B, BUFSIZE, &R, NULL);
(! S R == 0)
;
// W .
S = WF(S, B, R, &W, NULL);
(! S)
;
0;
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
19/29
j
L P L R JNTU WORLD [..]
19 B A [JNTU WORLD]
13. .
#
#
#
#
( , *[])
/*
* F
*/
;
// 1
(()) 0;
//
("/");
();
(0);
// 2
= ();
()
("D: %\", );
0;
/****** C ********/
FILE *;
=("//.", "");
(1)
(, "\");
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
20/29
j
L P L R JNTU WORLD [..]
20 B A [JNTU WORLD]
();
(2);
/**********************************/
14. .
#
#
#
#
#
()
_ ;
=();
(==0)
(1)
(" = %, =%\",()(), ()());
(3);
(" ");
0;
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
21/29
j
L P L R JNTU WORLD [..]
21 B A [JNTU WORLD]
15. .
) .) .
) .
#
#
#
# MAX 255
;
[MAX];
*;
[MAX];
()
,,,=0;;
((=(1006,IPC_CREAT 0666))=6;
=(,O_RDONLY);
((,,25)>0)
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
22/29
j
L P L R JNTU WORLD [..]
22 B A [JNTU WORLD]
( >,);
((,,( >),0)== 1)
(\ M W E);
((=(1006,0))0)
(1,.,);
++;
((= = 1)&(= =0))(\ N M Q Q:%,);
16. .(
)
#
#
#
#
#
#
#
# NUM_LOOPS 20
( , * [])
__;
_;
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
23/29
j
L P L R JNTU WORLD [..]
23 B A [JNTU WORLD]
_;
;
_;
;
;
__ = (IPC_PRIVATE, 1, 0600);
(__ == 1)
(": ");
(1);
(" ,
'%'.\", __);
_. = 0;
= (__, 0, SETVAL, _);
_ = ();
(_)
1:
("");
(1);
0:
(=0;
-
5/21/2018 Linux Programming Lab Record
24/29
j
L P L R JNTU WORLD [..]
24 B A [JNTU WORLD]
(2);
(() > 3*(RAND_MAX/4))
._ = 0;
._ = 10;(&, NULL);
;
0;
17. .
#
#
#
()
_;
* _;
_ ;
_;
__ = 06400;
/* A . */
_ = (IPC_PRIVATE, __,
IPC_CREAT IPC_EXCL S_IRUSR S_IWUSR);
/* A . */
_ = (*) (_, 0, 0);
( %\, _);
/* D . */
(_, IPC_STAT, &);
_ = ._;
( : %\, _);
/* W . */
(_, H, .);
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
25/29
j
L P L R JNTU WORLD [..]
25 B A [JNTU WORLD]
/* D . */
(_);
/* R , . */
_ = (*) (_, (*) 05000000, 0);
( %\, _);/* P . */
(%\, _);
/* D . */
(_);
/* D . */
(_, IPC_RMID, 0);
0;
18. .
#
#
#
#
# MAXBUF 100
# KEY 1216
# SEQFILE
,;
_();
_();
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
26/29
j
L P L R JNTU WORLD [..]
26 B A [JNTU WORLD]
;
_ *;
*;;
(])
, ,, , ;
[MAXBUF+1];
=();
((=(KEY, 1, IPC_CREAT 0666))= = 1)
();(1);
.=1;
((,0,SETVAL,)
-
5/21/2018 Linux Programming Lab Record
27/29
j
L P L R JNTU WORLD [..]
27 B A [JNTU WORLD]
();
(1);
(1);
_();
_( )
=(0, 1, 0);
((, &, 1)= =0)
(L: R\);
(E L\);
_( )
=(0, 1, 0);
((, &, 1)= =0)
(UL: R\);
(E U\);
19. /.
#
# < /.>
#
( , **)
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
28/29
j
L P L R JNTU WORLD [..]
28 B A [JNTU WORLD]
FILE *1;
,=0;
;
1=([1],"");
(!(1))
=(1);
(==' ')
=+1;
("\ T B= %",);
(0);
20. .
A . I
.
A , FIFO ,
; . A FIFO
() .
WRITER.C
#
#
# #
()
;
* = "//";
/* FIFO ( ) */
(, 0666);
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
-
5/21/2018 Linux Programming Lab Record
29/29
j
L P L R JNTU WORLD [..]
29 B A [JNTU WORLD]
/* "H" FIFO */
= (, O_WRONLY);
(, "H", ("H"));
();
/* FIFO */
();
0;
READER.C
# #
#
#
# MAX_BUF 1024
()
; * = "//";
[MAX_BUF];
/* , , FIFO */
= (, O_RDONLY);
(, , MAX_BUF);
("R: %\", );
();
0;
www.jntuworld.com www.jwjobs.net