1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Swift】abort() - プログラムの停止

Last updated at Posted at 2017-06-07

##abort() — プログラムの停止

Swiftの職場で、abortを使うことがあった。C言語の勉強も兼ねて調べたことがなかったので調べて見ました。

IBMさんの資料がすごく綺麗で見やすかった。
https://www.ibm.com/support/knowledgecenter/ja/ssw_ibm_i_71/rtref/abort.htm

###フォーマット

c.h
#include <stdlib.h>
void abort(void);

###説明
abort() 関数は、プログラムを異常終了させ、ホスト環境に制御を戻します。
exit() 関数と同様、abort() 関数はプログラムを終了する前にバッファーを削除し、オープン・ファイルをクローズします。

abort() 関数を呼び出すと SIGABRT 信号が発信され、SIGABRT がシグナル・ハンドラーによってキャッチされた場合は、 abort() 関数によるプログラムの終了は起こらず、シグナル・ハンドラーは戻りません。

####注意
SYSIFCOPT(*ASYNCSIGNAL) でコンパイルされた場合、abort() 関数はシグナル・ハンドラー内で呼び出すことはできません。

###戻り値
なし

##abortの意味
そもそも「abort」の意味は、、、、、
【動詞】、【自動詞】
1〈女性が〉妊娠中絶する,堕胎する。
2【生物】〈動植物・器官などが〉発育しない,退化する。
3
a〈計画などが〉挫折する,失敗する。
b【陸海軍, 軍事】〈ミサイル発射などが〉(故障など...

##使用例
以下のコードでdefault: breakとすると”variable ‘type’ used before being initialized”でエラーとなり、default: abort()としたらコンパイルも通り適当な値を入ず、実行されるとクラッシュします。

swift.swift
public class SwiftRegister {
    public enum SwiftType {
        case Unname
        case Number
    }

    public let name: SwiftCharacter
    public var type: SwiftType {
        var swiftType: SwiftType
        
        switch name {
        case "\"":                 swiftType = .Unname
        case "0"..."9":            swiftType = .Number

        default:
            abort()
        }
        
        return swiftType
    }
    
    public init(name: SwiftCharacter) {
        self.name = name
    }
}

関連ワード

・exit() — プログラムの終了
・signal() — 割り込みシグナルの処理
・<stdlib.h>

・ライブラリー関数

随時、変更記事、体裁を整えていきます。


関連記事

【About】(http://qiita.com/sunstripe) - サンストライプ


制作チーム:サンストライプ

sunstripe_logo.png
http://sunstripe.main.jp/

(月1WEBコンテンツをリリースして便利な世の中を作っていくぞ!!ボランティアプログラマー/デザイナー/イラストレーター/その他クリエイター声優募集中!!)

地域情報 THEメディア

THE メディア 地域活性化をテーマに様々なリリース情報も含め、記事をお届けしてます!!
https://the.themedia.jp/

ゼロからはじめる演劇ワークショップ

多様化の時代に向けて他者理解を鍛える

プログラミングワークショップ・ウェブ塾の開講!!!

様々なテーマでプログラミングに囚われずに取り組んでいきます。
詳しくはこちら ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
プログラミングサロン 月1だけのプログラミング学習塾

協力応援 / 支援者の集い

チーム:サンストライプ

プログラミングラボ

一緒にポートフォリオを作りませんか?現場の体験やそれぞれの立場から年齢関係なく作品を作りたい方々と一緒にチームを作って、作品を作っています。現場に行きたい人には、職場紹介や職場の体験や悩み相談なども受けております。
様々な職種からプログラミングの知識を得たい、デザインの知識を得たい、データーベースの知識を得たいという人が集まっております。
週1のミーティングにそれぞれの近況と作業報告して、たまにリモート飲み会などをしております!!

興味がある方は、DMに話しかけてみてください。

トラストヒューマン

http://trusthuman.co.jp/
私たちは何よりも信頼、人と考えてます。

「コンサルティング」と「クリエイティブ」の両角度から「人材戦略パートナー」としてトータル的にサポートします!!

キャリア教育事業
広域学習支援プラットフォーム『のびのび日和』
https://slc-lab.amebaownd.com/

#スポンサー募集

1
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?