1.背景
とにかく、バチカンの生命倫理に関する(日本語の)資料がすくなくて、大変。この論文は、ネット上で見つけた数すくない論文の一つ。
2. 概要
(1)命はいつから始まるか、について
(a)受精から、(b)着床から、(c)社会的動向と合わせて判断すべき
(2)カソリックが否定している事項
(a)結論:
カソリックは、人工受精、体外受精、は勿論、避妊も否定している。
(b)原則する考え方
結婚には2つの意義がある。
(i)夫婦の一体化、
(ii)生殖(子どもを作ること)
(c)論理付け:
(i)避妊は→夫婦の行為から生殖の可能性を故意に排除する→上記の原則(b)を破壊する
(ii)人工受精・体外受精→夫婦の営みを前提としない生殖→事実上の結婚の意味と結果を分裂させる→上記の原則(a)(b)の両方を破壊する
再起動後、変なプログラム(あれとか、あれとか、あれ)を立ち上げる前(ログイン直後)に、Windows Updateを実行すると、上手くいった。
原因を追求しても、あまり意味がないので、運用で対応する。
つまり、私の環境では、自動WindowsUpdateは必ず失敗するので、定期的に自分で実施する必要がある、ということになる。
http://www.planex.co.jp/support/download/mzk-rp150na/pdf/MZK-RP150NA_Manual_V2.1.pdf
■ap-game-****を無効にする
1. 設定画面右上「無線LAN」、左フレーム「基本設定」の順にクリックしてください。
2. 画面内「仮想AP」をクリックしてください。
3. 仮想AP表内の「ap-game-****」の「有効」のチェックを外してください。※チェックを外すことによりap-game-****は無効になります。
4.「適用」「再起動」の順にクリックして設定を保存してください。
UDP受信プログラム #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> int main() { int sock; struct sockaddr_in addr; char buf[2048]; sock = socket(AF_INET, SOCK_DGRAM, 0); addr.sin_family = AF_INET; addr.sin_port = htons(12345); addr.sin_addr.s_addr = INADDR_ANY; bind(sock, (struct sockaddr *)&addr, sizeof(addr)); memset(buf, 0, sizeof(buf)); recv(sock, buf, sizeof(buf), 0); printf("%s\n", buf); close(sock); return 0; }
UDP送信プログラム #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> int main() { int sock; struct sockaddr_in addr; sock = socket(AF_INET, SOCK_DGRAM, 0); addr.sin_family = AF_INET; addr.sin_port = htons(12345); addr.sin_addr.s_addr = inet_addr("127.0.0.1"); sendto(sock, "HELLO", 5, 0, (struct sockaddr *)&addr, sizeof(addr)); close(sock); return 0; }
/*********************************************************** ** Function : UDP受信テストプログラム(MinGW on Win7) ** File Name: udp_recv_test.c ** Debug : gcc -g udp_recv_test.c -o udp_recv_test -lwsock32 -lws2_32 ** Author : ** create : ** modify : ***********************************************************/ //---------------------------------------------------------- // Includes //---------------------------------------------------------- #include <stdio.h> #include <sys/types.h> #include <winsock2.h> #include <ws2tcpip.h> //#include <sys/socket.h> //#include <netinet/in.h> //#include <arpa/inet.h> //#include <netdb.h> //---------------------------------------------------------- // Defines //---------------------------------------------------------- #define _POSIX_SOURCE 1 /* POSIX comliant source (POSIX)*/ #define BUFFSIZE 2048 #define FALSE 0 #define TRUE 1 //---------------------------------------------------------- // Globals //---------------------------------------------------------- //---------------------------------------------------------- // Prototype //---------------------------------------------------------- int main(int argc, char *argv[]); //---------------------------------------------------------- // Code //---------------------------------------------------------- int main(int argc, char *argv[]) { WSADATA wsaData; SOCKET sock; struct sockaddr_in addr; //int sock; char buf[2048]; char *deststr; unsigned int **addrptr; /******************************************************* ** Initialize ********************************************************/ if (WSAStartup(MAKEWORD(2,0), &wsaData) == SOCKET_ERROR) { printf ("Error initialising WSA.\n"); return -1; } sock = socket(AF_INET, SOCK_DGRAM, 0); if (sock < 0) { perror("socket"); return 1; } /******************************************************* ** Process *******************************************************/ //------------------------------------------------------ // (1) //------------------------------------------------------ addr.sin_family = AF_INET; addr.sin_port = htons(12345); addr.sin_addr.s_addr = INADDR_ANY; //------------------------------------------------------ // (2)bind //------------------------------------------------------ bind(sock, (struct sockaddr *)&addr, sizeof(addr)); //------------------------------------------------------ // (3)recv //------------------------------------------------------ memset(buf, 0, sizeof(buf)); recv(sock, buf, sizeof(buf), 0); printf("%s\n", buf); /******************************************************* ** Terminate *******************************************************/ //close(sock); closesocket(sock); WSACleanup(); return 0; }
/*********************************************************** ** Function : UDP受信テストプログラム(MinGW on Win7) ** File Name: udp_recv_test.c ** Debug : gcc -g udp_recv_test.c -o udp_recv_test -lwsock32 -lws2_32 ** Author : ** create : ** modify : ***********************************************************/ //---------------------------------------------------------- // Includes //---------------------------------------------------------- #include <stdio.h> #include <sys/types.h> #include <winsock2.h> #include <ws2tcpip.h> //#include <sys/socket.h> //#include <netinet/in.h> //#include <arpa/inet.h> //#include <netdb.h> //---------------------------------------------------------- // Defines //---------------------------------------------------------- #define _POSIX_SOURCE 1 /* POSIX comliant source (POSIX)*/ #define BUFFSIZE 2048 #define FALSE 0 #define TRUE 1 //---------------------------------------------------------- // Globals //---------------------------------------------------------- //---------------------------------------------------------- // Prototype //---------------------------------------------------------- int main(int argc, char *argv[]); //---------------------------------------------------------- // Code //---------------------------------------------------------- int main(int argc, char *argv[]) { WSADATA wsaData; SOCKET sock; struct sockaddr_in addr; //int sock; char buf[2048]; char *deststr; unsigned int **addrptr; /******************************************************* ** Initialize ********************************************************/ if (WSAStartup(MAKEWORD(2,0), &wsaData) == SOCKET_ERROR) { printf ("Error initialising WSA.\n"); return -1; } sock = socket(AF_INET, SOCK_DGRAM, 0); if (sock < 0) { perror("socket"); return 1; } /******************************************************* ** Process *******************************************************/ //------------------------------------------------------ // (1) //------------------------------------------------------ addr.sin_family = AF_INET; addr.sin_port = htons(12345); addr.sin_addr.s_addr = INADDR_ANY; //------------------------------------------------------ // (2)bind //------------------------------------------------------ bind(sock, (struct sockaddr *)&addr, sizeof(addr)); //------------------------------------------------------ // (3)recv //------------------------------------------------------ memset(buf, 0, sizeof(buf)); recv(sock, buf, sizeof(buf), 0); printf("%s\n", buf); /******************************************************* ** Terminate *******************************************************/ //close(sock); closesocket(sock); WSACleanup(); return 0; }
0.前提条件
■Meadow(私の場合は3.0)がインストールされていること。
1.背景と狙い
■今後、簡単な数値シミュレーションのニーズが増えそうであり、できるだけ軽いプログラミング環境を作っておきたかった。
■とにかく軽くて、どのプラットフォームでも使えて、そして、もうこれ以上、私は、プログラミングの勉強をしたくなかった(C++でラストにしたい)。
■GUIなんぞには興味はなく、I/O系を使うこともないだろう(せいぜいsocketI/Oが条件)。またJava VMやJava開発環境は、私には正直「分からん」
■Perl, Rubyのスクリプト言語が良いことは良く理解しているが、知らない使い方を、その都度調べるのが面倒。
2.目的
■結局、UNIXの創世記から存在し、殆どのプラットフォームで利用可能で、今なお健在のGNU C Compiler(GCC)が、私には一番ラク。
■これをMeadow上のGDBの環境で使えれば、それで、私にはパラダイス。
3.開発環境構築
■「Windowsレジストリに登録されない」との一言で、cygwinをやめて、mingwにすることに決定。これならUSBメモリで開発環境を持ち歩ける(らしい)
(Step.1)http://sourceforge.net/projects/mingw/files/Installer/mingw-get/ ここ からダウンロードしてくる。私は、今回は「mingw-get-0.4-mingw32-alpha-1-bin.zip」をダウンロードした。
(Step.2)解凍するとディレクトリができるが、ディレクトリのトップが長いファイル名のままなので、"MigGW"などに替えて、C:\Users\ebata\mingwにもってきた。
(Step.3)C:\Users\ebata\mingw\binをpathを設定する。
(Step.4)C:\Users\ebata\mingw\binに移動して、"mingw-get list"と入力(時間がかかる)
(Step.5)mingw-get install gcc g++ mingw32-make
(Step.6)mingw-get install msys-base
(Step.7)mingw-get install gdb
(2016/04/04加筆)
スレッドプログラミングが行いたい場合は、以下を追加。
(Step.8)mingw-get install mingw32-libpthreadgc
(Step.9)mingw-get install mingw32-libpthreadgce
(Step.10)mingw-get install mingw32-pthreads-w32
(どれか1つは失敗したような気がするが忘れた)
このままpthreadのプログラムのコンパイルを試みると、
"c:\mingw\include\pthread.h:320:8: error: redefinition of 'struct timespec'"
などと喧しく言われることがある。
面倒くさかったので、C:\mingw\include\parts の time.hの、struct timespec をまるごとコメントアウトしたらコンパイルが通った
(2016/04/04加筆ここまで)
私の場合、Meadow側の設定は不要だった。
4.実行環境
==============================
#include int main ()
{
printf("Hello, world\n");
printf("2:Hello, world\n");
printf("3:Hello, world\n");
}
==============================
を、test.c と名前を入れて、
gcc -g test.c でコンパイル。
M-x gdbと入力すると、多分"gdb --annotate=3 a.exe"と表示されるので、そのままデバック環境を実行。ソースコードと連動して動く(あたりまえだが、20年前の環境が再現されて感動する)。
5.主要な操作
基本的には、ブレークポイントを設定してrunをする。
■ソースコート上でブレークポイントのセット
c-x space
■ソースコート上でブレークポイントの削除
該当行で C-x C-a C-d
ブレークポイントバッファの該当箇所で D(大文字)
マウスのクリックでも可能。
■n,sでステップ毎に進む。
以上
出展 http://robot009.blogspot.jp/2014/01/mingw-socket-programming-in-c.html a. おまじない ・include #include#include 通常の #include , などは使わない ・モジュールの初期化が必要 変数宣言 WSADATA wsaData; 初期化 WSAStartup(MAKEWORD(2 ,0), &wsaData); 終了処理 closesocket(SOCKET ss); WSACleanup(); b. 変数宣言 SOCKET を使う。POSIXは、int の descriptor 従って、read、writeは使えない。recvとsendを使う。 c. リンクモジュール -lwsock32 -lws2_32 gdbでデバックしようとする時は、こんな感じのコマンドでコンパイルする。 gcc -g server.c -o server -lwsock32 -lws2_32 gcc -g client1.c -o client1 -lwsock32 -lws2_32