在C语言中,函数中的局部变量在函数返回时被销毁(它们不再可访问,除非你明显地传递指针)。
套接字会怎样?特别是,如果我在1个函数中创建一个套接字,我可以传入sockid并将其绑定到另一个函数中,在另一个函数中监听,在另一个函数中接受吗?
从我可以看到这应该有用,但我不是C的专家。
答案 0 :(得分:1)
这样做应该没有问题。例如:
int sock = my_socket();
my_bind(sock);
my_listen(sock);
int connected_sock = my_connect(sock);
my_read(connected_sock);
答案 1 :(得分:0)
如果我在1个函数中创建一个套接字,我是否可以传递sockid并将其绑定到另一个函数中,另一个在另一个函数中调用,并在另一个函数中接受?
是的,你可以。当您创建套接字时,您获得的是套接字文件描述符。您可以将该值传递给其他函数,就像您可以传递任何其他值(不包括局部变量的return
地址一样)。