popenは、アプリケーションがインストールされているかどうかを確認できますか?

カタン

.pdfブラウザがインストールされているC ++プログラムを調べたいと思います。popenを使用する予定でしたが、このコードでもnun-NULLが返されます。

FILE *fp;
fp = popen("abracadabraxx ", "r");

アプリケーションがインストールされていないとフォークできないと思っていました。私は何かを誤解しましたか?

Matteoイタリア

アプリケーションがインストールされていないとフォークできないと思っていました

ドキュメントごとにpopen(使用してシェルを起動/bin/sh -cPOSIXシステム上)、および戻りますシェル出力に接続されたファイルディスクリプタ(または入力、二番目のパラメータに依存します)。コマンドの有効性は、の成功とは無関係であるpopenので、あなたが取得するつもりされていない、「それ自体」NULLのファイル記述子を作成するには、そのようなフォークに不可能などの低レベルの障害のために期待されるべき(出力中かにexecシェル自体、リソースが少ない状況でない限り「発生してはならない」すべてのもの)。

シェルが標準出力で吐き出すメッセージを受け取るだけです(標準エラーであるため、おそらく何も表示されません)。ちなみに、これはpopen、何が悪かったのかについて適切な診断が必要な場合に、一般的に良い考えではない理由の1つです

あなたが何をすることができません、しかし、のリターンコードを検査することであるpcloseあなたに提供します、シェルあなたは(もしあれば)何が悪かったのかについてのいくつかの詳細を見つけるために使用することが、終了コードを。


そうは言っても、ユーザーの好みに応じてファイルを「起動」することは、通常、オペレーティングシステムまたはOSが提供するユーティリティに委任するのが最適です。これを行う簡単な方法は、ShellExecuteWindowsAPI open、macOSのxdg-openユーティリティ、およびほとんどのLinuxインストールのユーティリティです1

実行可能ファイルを使用してファイルを開始することに関しては、はるかに複雑な問題です。macOSについてはわかりませんが、Windowsでは、ファイルは「プレーンな」実行可能ファイルよりも複雑なものに関連付けられている可能性があります(おそらくコマンドラインを使用)-以前はDDEコマンドがあり、自動インストールされるいくつかの新しい派手なMSI嫌悪感がありましたオンデマンドのものやその他の「魔法の」シェルのもの。Linuxでも、アプリケーションのDBusアクティベーションなどのサポートが壊れているのではないかと思います。したがって、一般に「関連付けられた実行可能ファイル」のようなものはありません。システムにファイルを開いて、この種の問題を回避するように依頼するだけです。


  1. いつものように、Linuxの「デスクトップ」のものは、必要以上に断片化され、複雑で、信頼性がありませんが、xdg-open一般的には安全な賭けです(私も失敗するのを見ましたが)。このようなことを自分でやろうとするFirefoxの道をたどらないでください。そうしないと、間違ったアプリケーションで10年前のバグが発生し、定期的に再表示されます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Java(または任意のアプリケーション)がWindowsにインストールされているかどうかを確認する

分類Dev

アプリケーションがインストールされているかどうかを確認します-Android

分類Dev

アプリケーションがディープリンク/参照リンクからインストールされているかどうかを確認するにはどうすればよいですか?

分類Dev

ノードJS:依存アプリケーションがターゲットマシンにインストールされているかどうかを確認するにはどうすればよいですか?

分類Dev

アプリケーションがGoogle Playからインストールされているかどうかを確認する

分類Dev

cronjobがSymfonyアプリケーションで実行されているかどうかを確認することはできますか?

分類Dev

アプリケーションがExcelで実行されているかどうかを確認します

分類Dev

iOSアプリでiMessage拡張機能がインストールされているかどうかを確認することはできますか?

分類Dev

アプリケーションがAndroidにインストールされているかどうかをプログラムで確認するにはどうすればよいですか?

分類Dev

アプリケーションがすでに実行されているかどうかを確認する

分類Dev

Javaアプリケーションから送信されたメールが読まれているかどうかを確認する方法は?

分類Dev

Linuxにインストールされているアプリケーションをどのようにして知ることができますか?

分類Dev

特定のMicrosoftアプリケーションがマシンにインストールされているかどうかを確認する適切な方法はありますか?

分類Dev

アプリケーションが物理ディスクのどこにインストールされているかを確認するにはどうすればよいですか?

分類Dev

bashスクリプトでJavaアプリケーションのプロセスIDを見つけます(ターゲットアプリケーションがすでに実行されているかどうかを確認するため)

分類Dev

アプリケーションがGUIで実行されているかどうかを確認するにはどうすればよいですか?

分類Dev

UWP アプリケーション (Skype) が C# にインストールされていることをどのように検出できますか?

分類Dev

アプリがリンク付きでインストールされているかどうか、またはインストールされていないか、キャンセルされていることを確認するにはどうすればよいですか?

分類Dev

アプリがアンインストールされているかどうかを確認する

分類Dev

RCPアプリケーションが新しくインストールまたはキャッシュされているかどうかを確認します

分類Dev

アプリケーションのインストール後に2番目のdexがロードされたかどうかを確認するにはどうすればよいですか?

分類Dev

Windowsレジストリが.NETCoreアプリケーションで利用可能かどうかを確認するにはどうすればよいですか?

分類Dev

アプリケーションがファイルを作成できるかどうかを確認することはできますか?

分類Dev

アプリケーションコマンド中にどのファイルがアクセスされているかを確認する方法は?

分類Dev

アプリケーションがインストールされている場所を見つけるにはどうすればよいですか?

分類Dev

アプリケーションがインストールされている場所を見つけるにはどうすればよいですか?

分類Dev

Composerを使用してnpmがシステムにインストールされているかどうかを確認することはできますか?

分類Dev

Graph APIを介してrequiredResourceAccessがアプリケーションに付与されているかどうかを確認する方法はありますか?

分類Dev

アプリケーションの通知が実行されているかどうかを確認する

Related 関連記事

  1. 1

    Java(または任意のアプリケーション)がWindowsにインストールされているかどうかを確認する

  2. 2

    アプリケーションがインストールされているかどうかを確認します-Android

  3. 3

    アプリケーションがディープリンク/参照リンクからインストールされているかどうかを確認するにはどうすればよいですか?

  4. 4

    ノードJS:依存アプリケーションがターゲットマシンにインストールされているかどうかを確認するにはどうすればよいですか?

  5. 5

    アプリケーションがGoogle Playからインストールされているかどうかを確認する

  6. 6

    cronjobがSymfonyアプリケーションで実行されているかどうかを確認することはできますか?

  7. 7

    アプリケーションがExcelで実行されているかどうかを確認します

  8. 8

    iOSアプリでiMessage拡張機能がインストールされているかどうかを確認することはできますか?

  9. 9

    アプリケーションがAndroidにインストールされているかどうかをプログラムで確認するにはどうすればよいですか?

  10. 10

    アプリケーションがすでに実行されているかどうかを確認する

  11. 11

    Javaアプリケーションから送信されたメールが読まれているかどうかを確認する方法は?

  12. 12

    Linuxにインストールされているアプリケーションをどのようにして知ることができますか?

  13. 13

    特定のMicrosoftアプリケーションがマシンにインストールされているかどうかを確認する適切な方法はありますか?

  14. 14

    アプリケーションが物理ディスクのどこにインストールされているかを確認するにはどうすればよいですか?

  15. 15

    bashスクリプトでJavaアプリケーションのプロセスIDを見つけます(ターゲットアプリケーションがすでに実行されているかどうかを確認するため)

  16. 16

    アプリケーションがGUIで実行されているかどうかを確認するにはどうすればよいですか?

  17. 17

    UWP アプリケーション (Skype) が C# にインストールされていることをどのように検出できますか?

  18. 18

    アプリがリンク付きでインストールされているかどうか、またはインストールされていないか、キャンセルされていることを確認するにはどうすればよいですか?

  19. 19

    アプリがアンインストールされているかどうかを確認する

  20. 20

    RCPアプリケーションが新しくインストールまたはキャッシュされているかどうかを確認します

  21. 21

    アプリケーションのインストール後に2番目のdexがロードされたかどうかを確認するにはどうすればよいですか?

  22. 22

    Windowsレジストリが.NETCoreアプリケーションで利用可能かどうかを確認するにはどうすればよいですか?

  23. 23

    アプリケーションがファイルを作成できるかどうかを確認することはできますか?

  24. 24

    アプリケーションコマンド中にどのファイルがアクセスされているかを確認する方法は?

  25. 25

    アプリケーションがインストールされている場所を見つけるにはどうすればよいですか?

  26. 26

    アプリケーションがインストールされている場所を見つけるにはどうすればよいですか?

  27. 27

    Composerを使用してnpmがシステムにインストールされているかどうかを確認することはできますか?

  28. 28

    Graph APIを介してrequiredResourceAccessがアプリケーションに付与されているかどうかを確認する方法はありますか?

  29. 29

    アプリケーションの通知が実行されているかどうかを確認する

ホットタグ

アーカイブ