現在C言語のプログラムをヘッダファイルに分割しライブラリ化を行っているのですが、宣言した関数が認識されていないようです。
しかし、このライブラリをincludeした外部プログラムではその関数を利用したプログラム側では動きます。
これはどういうことなのでしょうか??
↑画像のように認識されておらず「Function 'init_tcpserver' is never used 」等のWarningが表示されます
また、この関数の定義は以下のようになっています。
<init_tcpserver.c>
c
1#include <limits.h> 2 3#include "mynet.h" 4 5int init_tcpserver(in_port_t myport, int backlog) 6{ 7 struct sockaddr_in my_adrs; 8 int sock_listen; 9 10 /* サーバ(自分自身)の情報をsockaddr_in構造体に格納する */ 11 memset(&my_adrs, 0, sizeof(my_adrs)); 12 my_adrs.sin_family = AF_INET; 13 my_adrs.sin_port = htons(myport); 14 my_adrs.sin_addr.s_addr = htonl(INADDR_ANY); 15 16 /* 待ち受け用ソケットをSTREAMモードで作成する */ 17 if((sock_listen = socket(PF_INET, SOCK_STREAM, 0)) == -1){ 18 exit_errmesg("socket()"); 19 } 20 21 /* 待ち受け用のソケットに自分自身のアドレス情報を結びつける */ 22 if(bind(sock_listen, (struct sockaddr *)&my_adrs, sizeof(my_adrs)) == -1 ){ 23 exit_errmesg("bind()"); 24 } 25 26 /* クライアントからの接続を受け付ける準備をする */ 27 if(listen(sock_listen, backlog) == -1){ 28 exit_errmesg("listen()"); 29 } 30 31 return(sock_listen); 32}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。