1 #include <iostream>
2 #include <sys/socket.h>
3 #include <sys/un.h>
4 #include <cstring>
5
6 using namespace std;
7
8 int main(int argc, char** argv)
9 {
10 int sockfd;
11 socklen_t len;
12 struct sockaddr_un addr1, addr2;
13
14 if(argc !=2 )
15 cout<<"the paramenters error"<<endl;
16
17 sockfd = socket(AF_LOCAL, SOCK_STREAM, 0);
18
19 unlink(argv[1]);
20
21 bzero(&addr1, sizeof(addr1));
22 addr1.sun_family = AF_LOCAL;
23 strncpy(addr1.sun_path, argv[1], sizeof(addr1.sun_path)- 1);
24
25 bind(sockfd, (sockaddr*)&addr1, sizeof(addr1));
26
27 len = sizeof(addr2);
28
29 getsockname(sockfd, (sockaddr*)&addr2, &len);
30 //printf("bound name =%s, return len = %d\n",addr2.sun_path, len);
33 return 0;
34 }
2 #include <sys/socket.h>
3 #include <sys/un.h>
4 #include <cstring>
5
6 using namespace std;
7
8 int main(int argc, char** argv)
9 {
10 int sockfd;
11 socklen_t len;
12 struct sockaddr_un addr1, addr2;
13
14 if(argc !=2 )
15 cout<<"the paramenters error"<<endl;
16
17 sockfd = socket(AF_LOCAL, SOCK_STREAM, 0);
18
19 unlink(argv[1]);
20
21 bzero(&addr1, sizeof(addr1));
22 addr1.sun_family = AF_LOCAL;
23 strncpy(addr1.sun_path, argv[1], sizeof(addr1.sun_path)- 1);
24
25 bind(sockfd, (sockaddr*)&addr1, sizeof(addr1));
26
27 len = sizeof(addr2);
28
29 getsockname(sockfd, (sockaddr*)&addr2, &len);
30 //printf("bound name =%s, return len = %d\n",addr2.sun_path, len);
31 cout<<"bound name "<<addr2.sun_path<<" return len "<<len<<endl;
3233 return 0;
34 }