Visit Our UNIX and Linux User Community


The third argument of bind()


 
Thread Tools Search this Thread
Special Forums IP Networking The third argument of bind()
# 1  
Old 06-04-2011
The third argument of bind()

Code:
       int bind(int socket, const struct sockaddr *address,
              socklen_t address_len);

Man page says it specifies the length of the sockaddr structure pointed to by the address argument.

But why bind() can't figure out the length itself, since the first member (eg:AF_INET or AF_INET6...) of sockaddr structure implies the actual structure which contains it. So I think bind() can figure out the length of the sockaddr structure by inspecting address->sa_family.

You may say that, these strctures are diffrent in different OS. But the implemnetation of bind() can also be designed for diffrent OS. The length of these structures are constant in the same OS.

Who can explain it?

Thx!!!

Last edited by vistastar; 06-04-2011 at 01:41 AM..
# 2  
Old 06-04-2011
Quote:
Originally Posted by vistastar
But why bind() can't figure out the length itself, since the first member (eg:AF_INET or AF_INET6...) of sockaddr structure implies the actual structure which contains it. So I think bind() can figure out the length of the sockaddr structure by inspecting address->sa_family.

You may say that, these strctures are diffrent in different OS. But the implemnetation of bind() can also be designed for diffrent OS. The length of these structures are constant in the same OS.
Remember how many different protocols go through these same socket calls. These structures are all the same size, but there may be other protocols where they're not.
Quote:
Thx!!!
I'm sure you know the actual spelling.
# 3  
Old 06-06-2011
Quote:
These structures are all the same size, but there may be other protocols where they're not.
Do you mean there may be a protocal using two diffrent structures? Could you show an example?

Quote:
I'm sure you know the actual spelling.
Yes, but I don't think thx express less appreciation than thanks. I'm not a native speaker, but I see thx is used any where.
# 4  
Old 06-06-2011
Quote:
Originally Posted by vistastar
Do you mean there may be a protocal using two diffrent structures? Could you show an example?
I don't know of one myself, but it allows them, that's the point. These are supposed to be universal socket calls, not just tcp ones.
Quote:
Yes, but I don't think thx express less appreciation than thanks.
Considering not using netspeak is part of the rules you agreed to when you signed up, but you went ahead and used netspeak anyway, I think it does.
Quote:
I see thx is used any where.
It is popular on telephones, where typing is difficult.
# 5  
Old 06-07-2011
Thank you for your reply. I am sorry to break the rule, and will read them narrowly again.

Previous Thread | Next Thread
Test Your Knowledge in Computers #631
Difficulty: Medium
iPhone OS 1.0 was first released with great fanfare during the US Super Bowl in 2007.
True or False?

9 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Bind

Hi All I need to do bind of exiting filesystem to new storage allocated mount --bind /prod/OpenCSS /var/lib/test echo "/prod/OpenCSS /var/lib/pgsql bind bind 0 0" >> /etc/fstab will this command just work ? (2 Replies)
Discussion started by: anil529
2 Replies

2. UNIX for Dummies Questions & Answers

Can't bind to IP

When you get the message can't bind to ip already in use. is there a command to search to see everything that is using that IP? I've already check the host and hostname files (2 Replies)
Discussion started by: mchelle_99
2 Replies

3. UNIX for Advanced & Expert Users

Error:--test: argument expected--Even though i give an argument.

Hi All, I am running the script VBoxManage list vms |sed 's/"//g' | cut -d " " -f1 > har1out.mytxt result=`cat har1out.mytxt | grep $1' echo $result echo $1 { if then echo pass else echo fail fi (2 Replies)
Discussion started by: harsha85
2 Replies

4. Shell Programming and Scripting

Make script that run with argument if not run from configuration file argument

Hello, Is there any method thorugh which script can take argument if pass otherwise if argument doesn't pass then it takes the argument from the configuration file i.e I am workiing on a script which will run through crontab and the script will chekout the code ,zip and copy to the... (3 Replies)
Discussion started by: rohit22hamirpur
3 Replies

5. Shell Programming and Scripting

Cannot compare argument in if statement in csh/grep command if argument starts with -

If ($argv == “-debug”) then Echo “in loop” Endif But this is not working. If I modify this code and remove “-“, then it works. Similarly I am getting problem using grep command also Grep “-debug” Filename Can someone please help me on how to resolve these... (1 Reply)
Discussion started by: sarbjit
1 Replies

6. Shell Programming and Scripting

get positive number n as argument script must calculate the factorial of its argument

Can someone please help me with this SHELL script? I need to create a script that gets a positive number n as an argument. The script must calculate the factorial of its argument. In other words, it must calculate n!=1x2x3x...xn. Note that 0!=1. Here is a start but I have no clue how to... (3 Replies)
Discussion started by: I-1
3 Replies

7. UNIX for Dummies Questions & Answers

Dns/bind

Hi, Does anyone know anything about DNS/BIND? I need to tell my dns for every sub-domain foward on to my main domain.... so *.example.com gets sent to exmaple.com. Any ideas. I've looked at bind on my machine and theres about 10 files....i just don't know where to put the rule or exactly... (2 Replies)
Discussion started by: elduderino
2 Replies

8. UNIX for Dummies Questions & Answers

How to find the last argument in a argument line?

How to find the last argument in a argument line? (4 Replies)
Discussion started by: nehagupta2008
4 Replies

9. AIX

Bind and AIX

I am attempting to set up bind on an AIX 5.3 machine. I ahve created a named.conf, db.cache (for root domain and hint file) and a db.domainname file for the host entries. However, when I set my pc to use the AIX box as it's dns server, I can not resolve names. Is there anything obvious maybe I... (0 Replies)
Discussion started by: zuessh
0 Replies

Featured Tech Videos