31、运行实现文件锁功能的两个程序,查看使用flock()和fcntl()函数授予的锁是否会相互影响。如果你可以访问其他UNIX实现,也在那些实现上进行相同的实验。
实验内容
- 按照描述运行相应程序
- 观察
flock()和fcntl()授予的锁是否相互影响 - 若有其他 UNIX 实现,在其上重复此实验
32、编写一个程序,使用 getsockname() 来证明,如果我们在 TCP 套接字上调用 listen() 而不先调用 bind(),该套接字将被分配一个临时端口号。
以下是一个示例程序,用于演示在不调用 bind() 而直接调用 listen() 时,TCP 套接字会被分配一个临时端口号。该程序使用了 getsockname() 函数来获取套接字的本地地址和端口信息。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#define BUFFER_SIZE 1024
int main() {
int sockfd;
struct sockaddr_in server_addr;
socklen_t addrlen = sizeof(server_addr);
char buffer[BUFFER_SIZE];
// 创建 TCP 套接字
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd == -1) {
perror("socket creation failed")

最低0.47元/天 解锁文章
1693

被折叠的 条评论
为什么被折叠?



