作业社区
探索学习新天地,共享知识资源!
蜡笔小方哎 的学生作业:
#include #include #include #include #include int main() { pid_t pid_1 = fork(); if(pid_1 == -1) { perror("fork() error\n"); exit(-1); } else if(pid_1 == 0) { printf("child process A is created, pid is %d\n", getpid()); sleep(2); printf("child process A exit\n"); exit(0); } else { pid_t pid_2 = fork(); if(pid_2 == -1) { perror("fork() error\n"); exit(-1); } else if(pid_2 == 0) { printf("child process B is created, pid is %d\n", getpid()); sleep(5); printf("child process B exit\n"); exit(0); } else { while(waitpid(pid_1, NULL, WNOHANG) == 0) { printf("waiting for child process A exit...\n"); sleep(1); } while(waitpid(pid_2, NULL, WNOHANG) == 0) { printf("waitding for child process B exit...\n"); sleep(1); } } } return 0; }
ALEX2018 的学生作业:
seq(Sequence Number,序列号),表示当前数据段的第一个字节的序号。用于标识数据段的顺序,确保数据按正确的顺序传输。接收方通过 seq 确认数据是否按序到达。 ack(Acknowledgment Number,确认号),表示接收方期望收到的下一个字节的序号。用于确认已成功接收的数据。接收方通过 ack 告诉发送方:“我已经收到 ack - 1 之前的所有数据。” ACK(Acknowledgment Flag,确认标志位),一个标志位,表示 ack 字段有效。ACK 标志位为 1 时,表示当前数据段包含有效的确认信息。用于确认数据接收或建立连接。 SYN(Synchronize Flag,同步标志位),一个标志位,用于发起 TCP 连接。在 TCP 三次握手中,SYN 标志位为 1 时,表示发送方希望建立连接。通常与 seq 一起使用,初始化序列号。 FIN(Finish Flag,结束标志位),一个标志位,用于终止 TCP 连接。在 TCP 四次挥手中,FIN 标志位为 1 时,表示发送方希望关闭连接。接收方收到 FIN 后,会发送 ACK 确认,然后发送自己的 FIN。
+9