January 08, 2004

Cygwinでもopen!!

MacOSXとかだとターミナルからファイルに関連づけられたアプリケーションを起動するのにopenというコマンドを使用して、ファイルを開くことが出来ますよね。実はcygwinでも以下のコードで実装できるようです。

open.c

#include <windows.h>

int main(int argc, char **argv){
    HINSTANCE ret;

    if(argc < 2){
        printf("usage: open filename\n");
        exit(-1);
    }

    ret = ShellExecute(NULL, "open", argv[1], NULL, NULL, SW_SHOWNORMAL);

    if((int)ret < 32){
        printf("err.\n");
    }
}


たったこれだけです。あとはこのopen.cを以下の要領でコンパイルおよび配置してください。
$ gcc -DWIN32 open.c -o open.exe
$ mv open.exe /usr/bin/

これでCygwinからファイルを開くことが出来ます。例としてhoge.txtを開くなら
$ open hoge.txt

メモ帖が起動するはずてす。
最近、WindowsがCUI化しています…。

あと、この情報はOpenGLについて調べていたところ、ここのページで偶然見つけたものです。ありがとうございました。

※(2010/2/2追記) 実はopenより高機能な、cygstartというコマンドがあったりします。

00:22 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/143
コメント
コメントする









名前、アドレスを登録しますか?
(次回以降コメント入力が楽になります)
  • 匿名でのコメントは受け付けておりません。
  • 名前(ハンドル名可)とメールアドレスは必ず入力してください。
  • メールアドレスを表示されたくないときはURLも必ず記入してください。
  • コメント欄でHTMLタグは使用できません。
  • コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
  • コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。