Unix Socket - Chức năng của Người trợ giúp
Chương này mô tả tất cả các hàm trợ giúp, được sử dụng trong khi lập trình socket. Các chức năng trợ giúp khác được mô tả trong các chương -Ports and Servicesvà Mạng Byte Orders.
Các ghi Chức năng
Hàm ghi cố gắng ghi các byte nbyte từ bộ đệm được trỏ bởi buf vào tệp được liên kết với bộ mô tả tệp đang mở, các tệp .
Bạn cũng có thể sử dụng hàm send () để gửi dữ liệu đến một tiến trình khác.
#include <unistd.h>
int write(int fildes, const void *buf, int nbyte);
Sau khi hoàn tất thành công, write () trả về số byte thực sự được ghi vào tệp được liên kết với các bộ lọc. Con số này không bao giờ lớn hơn nbyte. Nếu không, -1 được trả về.
Thông số
fildes - Nó là một bộ mô tả socket được trả về bởi hàm socket.
buf - Nó là một con trỏ đến dữ liệu bạn muốn gửi.
nbyte- Là số byte được viết. Nếu nbyte bằng 0, write () sẽ trả về 0 và không có kết quả nào khác nếu tệp là tệp thông thường; nếu không, kết quả là không xác định.
Các đọc Chức năng
Hàm đọc cố gắng đọc các byte nbyte từ tệp được liên kết với bộ đệm, bộ lọc, vào bộ đệm được trỏ đến bởi buf.
Bạn cũng có thể sử dụng hàm recv () để đọc dữ liệu cho quá trình khác.
#include <unistd.h>
int read(int fildes, const void *buf, int nbyte);
Sau khi hoàn tất thành công, write () trả về số byte thực sự được ghi vào tệp được liên kết với các bộ lọc. Con số này không bao giờ lớn hơn nbyte. Nếu không, -1 được trả về.
Thông số
fildes - Nó là một bộ mô tả socket được trả về bởi hàm socket.
buf - Nó là bộ đệm để đọc thông tin vào.
nbyte - Là số byte cần đọc.
Các ngã ba Hàm
Hàm fork tạo ra một quy trình mới. Tiến trình mới được gọi là tiến trình con sẽ là một bản sao chính xác của tiến trình gọi (tiến trình mẹ). Tiến trình con kế thừa nhiều thuộc tính từ tiến trình mẹ.
#include <sys/types.h>
#include <unistd.h>
int fork(void);
Sau khi hoàn thành thành công, fork () trả về 0 cho tiến trình con và ID tiến trình của tiến trình con cho tiến trình mẹ. Nếu không, -1 được trả về quy trình mẹ, không có quy trình con nào được tạo và errno được đặt để chỉ ra lỗi.
Thông số
void - Có nghĩa là không cần tham số.
Các bzero Chức năng
Hàm bzero đặt các byte rỗng nbyte trong chuỗi s . Hàm này được sử dụng để thiết lập tất cả các cấu trúc socket có giá trị null.
void bzero(void *s, int nbyte);
Hàm này không trả về bất cứ thứ gì.
Thông số
s- Nó chỉ định chuỗi phải được lấp đầy bởi các byte rỗng. Đây sẽ là một biến cấu trúc trỏ tới socket.
nbyte- Nó chỉ định số lượng byte được điền bằng giá trị null. Đây sẽ là kích thước của cấu trúc ổ cắm.
Các bcmp Chức năng
Hàm bcmp so sánh chuỗi byte s1 với chuỗi byte s2. Cả hai chuỗi đều được giả định là dài nbyte byte.
int bcmp(const void *s1, const void *s2, int nbyte);
Hàm này trả về 0 nếu cả hai chuỗi giống hệt nhau, 1 nếu ngược lại. Hàm bcmp () luôn trả về 0 khi nbyte bằng 0.
Thông số
s1 - Nó chỉ định chuỗi đầu tiên được so sánh.
s2 - Nó chỉ định chuỗi thứ hai được so sánh.
nbyte - Nó chỉ định số byte được so sánh.
Các bcopy Chức năng
Hàm bcopy sao chép nbyte byte từ chuỗi s1 sang chuỗi s2. Các chuỗi chồng chéo được xử lý chính xác.
void bcopy(const void *s1, void *s2, int nbyte);
Hàm này không trả về bất cứ thứ gì.
Thông số
s1 - Nó chỉ định chuỗi nguồn.
s2v - Nó chỉ định chuỗi đích.
nbyte - Nó chỉ định số byte được sao chép.
Các memset Chức năng
Hàm memset cũng được sử dụng để thiết lập các biến cấu trúc theo cách tương tự nhưbzero. Hãy xem cú pháp của nó, được đưa ra bên dưới.
void *memset(void *s, int c, int nbyte);
Hàm này trả về một con trỏ đến void; trên thực tế, một con trỏ đến bộ nhớ đã thiết lập và bạn cần phân loại nó cho phù hợp.
Thông số
s - Nó chỉ định nguồn được thiết lập.
c - Nó chỉ định ký tự để đặt trên các địa điểm nbyte.
nbyte - Nó chỉ định số byte sẽ được thiết lập.