SlideShare a Scribd company logo
詳解UNIXプログラミング

     1. 概論
シェル
Bourne シェル /bin/sh

Cシェル /bin/csh

Kornシェル /bin/ksh

ユーザの入力を読み取り、コマンドを実行する
インタプリタ

入力は通常端末からだが、ファイルから(シェ
ルスクリプト)の場合もある
ファイル名
ファイル名にはスラッシュ文字(/)とnull文字が
使用できない

スラッシュはパスを区切る

null文字はパスを終了させる

新しくディレクトリを作ると .(ドット)と..(ドッ
トドット)の2つのファイル名が自動的に作成
される
作業ディレクトリ

各々のプロセスは作業ディレクトリを持つ

プロセスはchdirを用いて作業ディレクトリを
変更できる
ファイル記述子
プロセスが参照するファイルを識別するため
に、カーネルが使用する非負の整数

カーネルが既存ファイルをオープンしたりする
たび、ファイル記述子を返す

すべてのシェルは新たにプログラムを実行する
ときに、3つの記述子「標準入力」「標準出
力」「標準エラー出力」をオープンする
標準入出力
標準入出力関数はアンバッファド入出力関数に
対するバッファリングインターフェースを提供

アンバッファド入出力関数=バッファリングし
ない関数open, read, write, lseek, closeなどのこ
と

バッファリングしないと遅いのでそれを解消
プロセス

プログラム=実行可能ファイル

プロセス=プログラムの実行中のインスタン
ス

各プロセスにはプロセスIDと呼ばれる非負の
数値識別子が割り付けられる
ANSI C

ISOとANSIによって1989年、共同で標準化さ
れたC言語

多くの処理系がANSI Cの規格を順守

<unistd.h>にはUNIXシステムコールに関する
関数プロトタイプが収められる
システムデータ型
_tで終わるデータ型(ssize_tなど)は基本的なシ
ステムデータ型

通常typedef宣言が必要だが、ANSI C側で定義
されている

int,longなどを使わずにシステム環境ごとの差
異を吸収する
エラー処理
UNIX関数でエラーが起こるとたいてい負の値
が返され、追加情報がint errnoに設定される

エラーが発生しなかったときにerrnoがクリア
されることはないので、errnoを参照するのは
エラー発生時のみにすべき。
シグナル

特定の状況が発生したことをプロセスに通知

シグナル発生時に呼び出される関数を与え、デ
フォルトの処理を変更できる
システムコール

各システムコールに対して標準Cライブラリ関
数が提供されている

ユーザ側からはシステムコールとライブラリ関
数を意識して区別する必要はさほどない

More Related Content

ODP
シェルスクリプトを極める
ODP
仕事で使えるシェルスクリプト
PDF
シェル芸初心者によるシェル芸入門
ODP
Programming under capability mode
PDF
【メモ】一般的に設計書に定義される項目例
PPTX
Hostsの活用
KEY
詳解UNIXプログラミング 第4章 ファイルとディレクトリ
PDF
linux基礎_新卒エンジニア勉強会20130404
シェルスクリプトを極める
仕事で使えるシェルスクリプト
シェル芸初心者によるシェル芸入門
Programming under capability mode
【メモ】一般的に設計書に定義される項目例
Hostsの活用
詳解UNIXプログラミング 第4章 ファイルとディレクトリ
linux基礎_新卒エンジニア勉強会20130404

What's hot (20)

PDF
systemdでよく使うサブコマンド
PDF
Shellを書こう 02 shUnit2を使おう
PDF
Shellを書こう 01 Shellcheckを使おう
PDF
コード読経会報告書
PDF
後期第六回ネットワークチーム講座資料2016
PDF
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
PDF
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
PPTX
NGSPICEの基本操作
ODP
Custom Package Building with Poudriere
PDF
NGS速習コース:UNIXの基礎の理解/Linux導入
PDF
R以外の研究ツール
PDF
RとSQLiteで気軽にデータベース作成
PDF
1 Linux入門 第4章 シェル
PDF
シェル芸初心者によるシェル芸入門 (修正版)
PDF
ODP
Sourcecode Reading Workshop2010
PPTX
自分のPcに仮想環境を作ってlinuxをインストールしてみよう
PDF
バッチリネーマーの制作
PDF
R を起動するその前に
PDF
カウチなやつら CouchDB in the room
systemdでよく使うサブコマンド
Shellを書こう 02 shUnit2を使おう
Shellを書こう 01 Shellcheckを使おう
コード読経会報告書
後期第六回ネットワークチーム講座資料2016
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
NGSPICEの基本操作
Custom Package Building with Poudriere
NGS速習コース:UNIXの基礎の理解/Linux導入
R以外の研究ツール
RとSQLiteで気軽にデータベース作成
1 Linux入門 第4章 シェル
シェル芸初心者によるシェル芸入門 (修正版)
Sourcecode Reading Workshop2010
自分のPcに仮想環境を作ってlinuxをインストールしてみよう
バッチリネーマーの制作
R を起動するその前に
カウチなやつら CouchDB in the room
Ad

Viewers also liked (20)

PPT
ユーザ目線の実践的BPM
KEY
PPT
マインドハック研究会 ライフハック編 20100512
PDF
Software Foundation:形式的証明と非形式的証明
 
PPT
社内Gtd勉強会 20101022
ODP
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
PPTX
20161026_超高層大気観測データのメタデータ作成実験経過報告
PPTX
TO LOVE IN'~人生のパートナーを見つける旅~
PPT
関西ライフハック研究会×アイデアプラント
PDF
GTD 残業を減らす方法
PDF
ふり返りハック ~ ライフをハッキングするために
PPTX
IGDA_Sig-BoardGame_ワークショップ用資料
PDF
バージョン管理入門
PDF
理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」
PDF
PDF
『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~
PPT
DXライブラリのすゝめ
PDF
NetBSDとは
PDF
ライフハック研究会Lt大会20120519
PDF
GTD+R体験(オブラブ2007夏)
ユーザ目線の実践的BPM
マインドハック研究会 ライフハック編 20100512
Software Foundation:形式的証明と非形式的証明
 
社内Gtd勉強会 20101022
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
20161026_超高層大気観測データのメタデータ作成実験経過報告
TO LOVE IN'~人生のパートナーを見つける旅~
関西ライフハック研究会×アイデアプラント
GTD 残業を減らす方法
ふり返りハック ~ ライフをハッキングするために
IGDA_Sig-BoardGame_ワークショップ用資料
バージョン管理入門
理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」
『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~
DXライブラリのすゝめ
NetBSDとは
ライフハック研究会Lt大会20120519
GTD+R体験(オブラブ2007夏)
Ad

Unix1

Editor's Notes