CÁC BÀI THỰC HÀNH LINUX - Trang 32

- 31-

fd=number;

printf(" So hieu mo ta la %d\n",fd);
switch (nread=read(fd, texte, sizeof(texte)))

{
case -1:

perror("Loi

doc.");

case 0:

perror("EOF");
default:

printf("Van ban nhan duoc co %d ky tu: %s\n",fd, texte);

}

}
main() {

int

fd[2];

char chaine[10];


if (pipe(fd)==-1)

{ perror("Loi khoi tao pipe.");

exit(1);

}

switch (fork()) {
case -1:

perror(" Loi khoi tao tien trinh.");

break;

case 0:
if

(close(fd[1])==-1)

perror("

Error.");

code_fils(fd[0]);

exit(0);
}

close(fd[0]);
if (write(fd[1]),"hello",6)==-1)

perror("Loi

truyen.");

}

Kết quả chương trình:

So hieu mo ta la: 5
Van ban nhan duoc co 6 ky tu: hello

Chú ý rằng, tiến trình con đọc trong ống dẫn mà không viết ở đó nên nó bắt đầu

bằng cách đóng phần viết fd[1] để tiết kiệm các tín hiệu mô tả của tổ hợp. Tương tự, vì
tiến trình cha chỉ sử dụng phần viết nên nó đóng phần đọc lại (fd[0]). Sau đó tiến trình
cha viết vào ống dẫn 6 ký tự và tiến trình con đã đọc chúng.

Bài 9

Lập trình mạng TCP/IP

9.1. Lập trình client /server theo giao thức TCP/IP

Chương trình tcpClient.c

/* Chuong trinh tcpClient.c */