2018年1月6日土曜日

開発環境

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 コメント:

コメントを投稿