UNIXでsocketプログラムのsend関数について
Posted: 2013年2月10日(日) 10:29
ちょっとした疑問です。
UNIXのSOCKETプログラミングでsend関数の使い方について質問です。
関数の宣言は
int send( int socket, const void *msg, unsigned int msgLength, int flag );
第3引数の msgLength は 第2引数 msg の文字列長を指定するという意味だと記憶しているのですが、
仮に、
char msg[1024] = "hoge";
の場合、msgLengthは
sizeof(msg)にすべきなのか
strlen(msg)にすべきなのか
戸惑いました。
どちらがベストなのでしょうか。
それとも通信相手サイドのプログラム次第なのでしょうか。
あるいはsendの戻り値を把握して適切に処理したほうがいいのでしょうか。
それともうひとつ。
第4引数はとりあえず 0 を指定していますが、これについて詳しく書かれているサイトなど教えていただけると幸いです。
UNIXのSOCKETプログラミングでsend関数の使い方について質問です。
関数の宣言は
int send( int socket, const void *msg, unsigned int msgLength, int flag );
第3引数の msgLength は 第2引数 msg の文字列長を指定するという意味だと記憶しているのですが、
仮に、
char msg[1024] = "hoge";
の場合、msgLengthは
sizeof(msg)にすべきなのか
strlen(msg)にすべきなのか
戸惑いました。
どちらがベストなのでしょうか。
それとも通信相手サイドのプログラム次第なのでしょうか。
あるいはsendの戻り値を把握して適切に処理したほうがいいのでしょうか。
それともうひとつ。
第4引数はとりあえず 0 を指定していますが、これについて詳しく書かれているサイトなど教えていただけると幸いです。