MENU
  • このブログに関して
  • 特集アーカイブ
    • Windows更新情報
    • Windows11使いこなし
    • Windows 10使いこなし
    • macOS/iOS/iPadOS更新情報
    • macOS使いこなし
    • iOS使いこなし
    • Webブラウザ更新情報
  • ソフトウェア
  • Windows
  • Mac
  • iOS
  • セール
PCやMacの性能を100%発揮
ソフトアンテナ
  • このブログに関して
  • 特集アーカイブ
    • Windows更新情報
    • Windows11使いこなし
    • Windows 10使いこなし
    • macOS/iOS/iPadOS更新情報
    • macOS使いこなし
    • iOS使いこなし
    • Webブラウザ更新情報
  • ソフトウェア
  • Windows
  • Mac
  • iOS
  • セール
ソフトアンテナ
  • このブログに関して
  • 特集アーカイブ
    • Windows更新情報
    • Windows11使いこなし
    • Windows 10使いこなし
    • macOS/iOS/iPadOS更新情報
    • macOS使いこなし
    • iOS使いこなし
    • Webブラウザ更新情報
  • ソフトウェア
  • Windows
  • Mac
  • iOS
  • セール
  1. ホーム
  2. ソフトウェア
  3. C - C言語のソースコードをシェルスクリプト的に実行するプログラム

C - C言語のソースコードをシェルスクリプト的に実行するプログラム

2015 3/06
ソフトウェア
2015年3月6日 2015年3月6日
  • URLをコピーしました!

2015 03 06 0 36 30

C言語はコンパイラを使ってソースコードをコンパイルし実行する「コンパイラ型言語」の代表と見られています。このC言語のソースコードをあたかもスクリプト言語であるかのように扱うことができるプログラム「C」が公開されています(Hacker News)。

Cを使えば、「c hello.c」とか、shebangを使って「./hello.c」のように、Cソースコードを通常のスクリプト言語のように実行できるのです。

目次

目次

  • 1 インストール方法
  • 2 実行方法
  • 3 どうなっているの?
  • 4 まとめ

インストール方法

git cloneしてcをパスにコピーするのが簡単です。

$ git clone https://github.com/ryanmjacobs/c
$ sudo cp ./c/c /usr/bin/c

/usr/binはちょっと…という場合は、/usr/local/binや、~/binなどお好みの場所にコピーしてパスを通しておいてください。

実行方法

examplesディレクトリにサンプルプログラムが入っているのでそれを動かすのが手っ取り早いです。

$ cd examples
$ more hello.c
#!/usr/bin/c
#include 

int main(void) {
    puts("Hello World!");
    return 0;
}
$ c hello.c
Hello World!

少し気持ち悪い気もしますが、ちゃんと「Hello World!」プログラムが動きました。単純な1ファイルのソースコードだけでなく、複数のファイルを指定したり、ライブラリを指定したりといったこともオプション指定によって可能です。

どうなっているの?

cコマンドは実際はbashスクリプトで、処理のキモの部分は以下のようになっています。

# compile and run
if "$CC" -I"$(pwd)" -O2 -o "$binname" ${comp[@]}; then
    shift
    (exec -a "$fname" "$binname" "$@")
    ret=$?
else
    ret=1
fi

要はソースコードを、Cコンパイラでコンパイルして実行しているだけ…という考えてみれば当たり前な作りとなっていました。試しにエラーになるソースコードを実行させてみると、処理がより明確になります。

$ c hello_error.c
/var/folders/pf/gvc5xz_j52b92qwl9y0vwdm40000gq/T/c.XXX.9CXS0xvo/hello_error.c:4:1: error:
      unknown type name 'nt'
nt main(void) {
^
1 error generated.

まとめ

C言語のコンパイル=重い処理、と思いがちですが、プログラムが短いせいか、マシンパワーのせいか、SSDのせいか、思いのほかサクサク動いて意外な気がしました。簡単なC言語のソースコードをちょっと動かしてみたい、といった用途だと実用的に使えるかもしれません。

ソフトウェア
C script
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
  • CSS Apple Watch for Mockups - Apple Watchのモックアップ作成サービス
  • Apple、「iOS 8.2」を月曜日にリリースへ、リリースノートが完全流出

関連記事

  • AutoHotkey v2が正式に主要バージョンに
    2023年1月30日
  • 画面録画機能を搭載したMicrosoftの「Snipping Tool」の正式公開が一歩近づく
    2023年1月30日
  • M1/M2/Intel MacでWindows 11を実行できる「UTM 4.1」
    2023年1月29日
  • Microsoft、プロジェクト「Phoenix」でEdgeブラウザを刷新
    2023年1月28日
  • OpenCore Legacy Patcher 0.6.1がリリース - 非互換MacでmacOS Venturaを動かすためのツール
    2023年1月26日
  • Windows Terminal Preview 1.17がリリース - Micaサポートとプロセス再起動など
    2023年1月26日
  • Microsoft Edgeに「ウィンドウの分割」機能が導入。2つのページを同時に閲覧可能に
    2023年1月25日
  • TapbotsのMastodonクライアントが「Ivory」が正式に公開 - サブスクリプションライセンスを導入
    2023年1月25日
スポンサーリンク
サイト内検索
特集アーカイブ
  • Windows更新情報
  • Windows11使いこなし
  • Windows 10使いこなし
  • macOS/iOS/iPadOS更新情報
  • macOS使いこなし
  • iOS使いこなし
  • Webブラウザ更新情報
Feedlyに登録

登録お願いします!

follow us in feedly

人気記事
  • Lp logo 3 1000x657 質問に対し流暢な日本語で回答してくれる「ChatGPT」が公開 - 試し方はこちら
  • S 20230119 111028 Microsoft、Windows 11 22H2でシステムの復元ポイントがアプリを破壊する事を確認
  • S 20230125 112030 Microsoft Edgeに「ウィンドウの分割」機能が導入。2つのページを同時に閲覧可能に
  • S 20221123 111042 Windows 11のタスクトレイ時計の秒表示を有効にする方法
  • Mac mini M2 2023 【悲報】M2搭載ローエンドMac miniとMacBook ProのSSD速度は前世代より低下
  • 1674457395 with special id enabled refs win 11 install fails source xeno twitter  1 MicrosoftがWindows 11でReFSをサポート。そろそろNTFSからの移行が実現か?
  • S 20221206 204658 メニューバーから対話できる「ChatGPT for Mac」がリリース
  • S 20210923 114221 Windows 11で「管理ツール」を開く方法
  • S 20220219 172234 【Tips】iPhoneで撮影した特定の写真だけをiCloudに保存する方法
  • S 20230127 111050 Windows 11 Version 22H2用のプレビューアップデートKB5022360が公開 - タスクバー検索やIMEの不具合修正
カテゴリー
タグ
Amazon Android App Apple applewatch appsale Chrome Edge Firefox Git Github Google iOS iPad ipados iPhone iPhone6 iphone7 iphone8 iTunes JavaScript Kindle Linux Mac MacBook MacBookPro macos Microsoft Nintendo OS X OSX Parallels Rails Ruby Sale Steam Swift Twitter VMware Windows windows7 windows10 windows11 Wine Yosemite
新着記事
  • AmazonでJUNNUPの戻る/進む対応ワイヤレストラックボールが51%OFFとなるセールが実施中
  • 画像の圧縮とリサイズを同時に実行できる「Photo Size Optimizer」がセール中!本日のアプリセールまとめ
  • Carbonyl - ターミナル内で実行できるChromiumブラウザ
src256
ソフトアンテナを開発しています。

Windows/Mac/Linux全部使用中。ソフトウェア、ハードウェアいろいろなモノに興味があります。

好きなエディタはEmacs。好きな言語はRubyです。


srcw.net
  • プライバシーポリシー

© 2022 ソフトアンテナ

目次