So-net無料ブログ作成

コマンドラインアプリをGUIアプリにする前の下調べ。 [プログラミング]

MacでWindowsのShellExecute()のようなことをしたい場合どうしたいか、調べたらすぐに出てきた。

https://codeday.me/jp/qa/20190508/790510.html

壊れたような日本語に翻訳されたサイトですが事足りるので別にいい。要するにopenコマンドをsystem()関数で呼び出せば済むだけなので、ファイルのパスを探してくるだけで、手間はShellExecute()と大して変わりません。面倒がなくていいね。というか、コマンドになっているからシェルスクリプトに書けるというメリットがありますね。

そういやsystem()関数とか呼ぶのは、Swiftではどうやってたかな。というか、Swiftあんまりやってないんだよなぁ。SwiftとC言語の関数とかどう互換性があったのかよくわからない。

http://moapp.hateblo.jp/entry/2017/01/04/221623

system()関数を呼び出そうとするとエラーになるそうで。Cocoa的にNSTaskを使えばいいっぽい。

https://qiita.com/kitanoow/items/8b551a2d121ff95ef553

細々なことをしようとすると面倒臭いっぽいが、コマンドを発行する程度ならそんなに面倒じゃなさそう。ただコマンドのフルパスを指定しないといけないとか、UNIXのお作法的に気持ち悪すぎる。普通パスが通っているところにフルパスを指定するとか謎仕様なんだけど、パスを指定する設定がないので仕方ないのかな。

まぁMacだけで使うのでパスが固定されていてもそれほど問題はないのかもしれないけど、なんらかの変更があった時には対応できないよな。というか、そういう仕様はUNIXとしてかなり腐っている感じがするのは私だけでしょうか。

コメント(0) 
共通テーマ:パソコン・インターネット

Twitterまとめ投稿 2019/09/08 [Twitter]


コメント(0)