ネットワークアドレス構造体を文字列に変換したいです。
そして、その変換ができるinet_ntopを自作してみたのですが、2点ほどうまくいかないところがあります。
1つ目は、文字列に変換する際、8ビット毎に数値を文字列に変換し、そのたびに「.」を付け加えたいのですが、やり方が思い浮かびません。
2つ目は、テストパターンです。簡単にではあるのですが、テストパターンを一つ作っています。
ですが、本当は、inet_ntop(const void *src,char *dst, socklen_t cnt)のように引数3つでのテストパターンを作成したいのですが、うまく作成できません。
下記は、inet_ntopのmanページです。
AF_INETの場合を考えます。
https://linuxjm.osdn.jp/html/LDP_man-pages/man3/inet_ntop.3.html
6時間考えても分からなかったので、ご教授していただきたいです。
宜しくお願い致します。
C言語
1#include <stdio.h> 2#include <stdlib.h> 3#include <assert.h> 4#define N 256 5 6int inet_ntop( int src ) { 7 8 // 変数の宣言 9 char s1[N] = {'\0'}; 10 11 // 数値を文字列に変換 12 sprintf( s1, "%d", src ); 13 14 // 変換したものを出力 15 fprintf( stdout, "%s\n", s1 ); 16 17 return( 0 ); 18} 19 20int main(){ 21 22 int result; 23 24 result = inet_ntop( 1300723 ); 25 assert( result == 0 ); 26 27 return( 0 ); 28}
回答2件
あなたの回答
tips
プレビュー