> 具体的にいうと、getsocknameの使い方がmanでしらべても > よくわからなかったのです(泣) 僕も知りませんでしたが、昨日から調べていてやっとできました。 struct sockaddr_in local_socket; int len; long local_ip; len = sizeof(local_socket); if ( getsockname(socket,(struct sockaddr *)&local_socket,&len) < 0 ){ printf("getsockname failed.\n"); } local_ip = ntohl(local_socket.sin_addr.s_addr); printf("PORT %d,%d,%d,%d,%d,%d\n", (local_ip >> 24) & 0xff, (local_ip >> 16) & 0xff, (local_ip >> 8) & 0xff, (local_ip ) & 0xff, (ntohs(local_socket.sin_port) >> 8) & 0xff, (ntohs(local_socket.sin_port) ) & 0xff); # わかってから man を読むと、何が書いてあるか理解できるんだけどなぁ。 > あるいは、CでかかれたFTPクライアント FreeBSD あたりなら ftpコマンド http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/src/usr.bin/ftp/ fetchコマンド http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/src/usr.bin/fetch/ ftpライブラリ(fetchがリンクしている) http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/src/lib/libftpio/ などなど。FreeBSD 以外の環境でコンパイルしようとすると 苦労するでしょうから、ソースを読むだけにしておくのがいいでしょう。 今回参考にしたのは (結果的には丸写しになってしまったけど) http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/src/lib/libftpio/ftpio.c?rev=1.33 です。 > CDプレイヤーを立ち上げるとerorrと出てきます。 > mountの設定なのでしょうか? mount は必要ないです。音楽CDを聞くには、 「CD-ROMドライブに何曲目を鳴らせ」 という指令を送るだけで、後は CD-ROM ドライブが勝手にやってくれます。 で、お使いのプレイヤーの -device とか -d とかのオプションで、 CD-ROM ドライブのデバイスを指定できませんか? # FreeBSD なら xcdplayer -device /dev/wcd0c とか # xcdplayer -device /dev/cd0c ですけど、Linux は知りません。 |