開発環境
- OS: Windows 10 Pro
- IDE(統合開発環境): Visual Studio 2017 (、Clang/C2(試験的))
- プログラミング言語: C(Visual C)
Head First C ―頭とからだで覚えるCの基本 (David Griffiths (著)、Dawn Griffiths (著)、中田 秀基 (監修)、木下 哲也 (翻訳)、オライリージャパン)の10章(プロセス間通信 - お話は楽しい)、目的は何?(p. 455)を取り組んでみる。
目的は何?(p. 455)
SIGINTを使ってみる。
コード
#include <stdio.h>
#include <signal.h> // signal
#include <stdlib.h>
#include <string.h> // strlen
void diediedie(int sig)
{
if (sig == SIGINT)
{
puts("残酷な世界よさようなら・・・");
exit(1);
}
printf("SIGINTではないシグナル: %d\n", sig);
exit(2);
}
int main()
{
if (signal(SIGINT, diediedie))
{
fprintf(stderr, "ハンドラを設定できません");
exit(3);
}
char name[30];
printf("名前を入力してください: ");
fgets(name, 30, stdin);
name[strlen(name) - 1] = '\0';
printf("こんにちは、%sさん\n", name);
return 0;
}
入出力結果(コマンドプロンプト)
>sigint.exe 名前を入力してください: kamimura こんにちは、kamimuraさん >echo %ERRORLEVEL% 0 >sigint.exe 名前を入力してください: 残酷な世界よさようなら・・・ >echo %ERRORLEVEL% 1 >
0 コメント:
コメントを投稿