ドラッグしたファイル名を取得するCプログラムはWindowsでは、
#include <stdio.h>
int main(int argn, char *argv[])
{
if(argn != 2) {
printf("本プログラムにファイルをドラッグしてください\n");
return -1;
}
printf("ドラッグしたファイルは%sです\n",argv[1]);
return 0;
}
で動作しますが、これと同じことがLINUX MINT でできる、プログラムの書き方がわかりません。
<症状>
このプログラムをgcc でコンパイルしてできた a.out をターミナルから
./a.out hoge.dat
すると
ドラッグしたファイルはhoge.datです
とwindows版と同じように表示されますが、
hoge.dat をa.out にドラッグしても何も起こりません。
C言語の問題というより、OSのインタフェースの違いということも承知していますが、こちらのカテに質問してみました。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
元々、Linuxはコマンドラインで使うのが主流だったと思います。
ですから、ドラッグ&ドロップなんて使えないのが普通だと思います。
もし、使えるようにするのであれば、Cのソースを修正するのではなく、GUIをサポートする環境のドラッグ&ドロップを強化して、argvにファイル名が渡るようにするしかないと思います。
昔、質問者さんと同じように、Linux系の環境をWindowsの操作性に近づけようと努力したGUIの商品があったと思いますが、それは、まともに使えるものじゃあありませんでしたね。
応答ありがとうございます。
>もし、使えるようにするのであれば、Cのソースを修正するのではなく、GUIをサポートする環境のドラッグ&ドロップを強化して、argvにファイル名が渡るようにするしかないと思います。
そのような解決策でもOKです。
実際、a.out を「マウスクリックで起動」させるために.desktopファイルを用意していますので、
ドラッグ&ドロップで起動させるための.desktopファイルのような仕掛けがありそうな気がしますが、ご存知ありませんか?
カテ変更して質問したほうがよさそうな展開になってきましたが、
>昔、質問者さんと同じように、Linux系の環境をWindowsの操作性に近づけようと努力したGUIの商品があったと思いますが、それは、まともに使えるものじゃあありませんでしたね。
なるほど。でもその後、進展はないのでしょうかね。
No.4
- 回答日時:
>>GUIの商品があったと思いますが、それは、まともに使えるものじゃあありませんでしたね。
>>>なるほど。でもその後、進展はないのでしょうかね。
現在のMacOSが、その開発者がめざしたものを実現したってことではないでしょうか?
No.3
- 回答日時:
> ドラッグしたファイル名を取得する
これのWindows GUIでの操作がイマイチ分かりませんが……
a.outのアイコン上にhoge.datのアイコンをドラッグする?
上記のような動作なら、それはあなたが書いたCプログラムではなくデスクトップを作っているエクスプローラーの機能なので、そういう機能を持ったデスクトップシェルを使えという話ですね。
自分のCプログラムでドラッグされたファイルを処理するなら最低でも自分でウィンドウを開いてマウス操作イベントを処理しないといけません。当然ですがWindowsとLinuxでは全然別のプログラムになります。
No.1
- 回答日時:
>>C言語の問題というより、OSのインタフェースの違いということも承知しています
それが原因でしょうね。
>>これと同じことがLINUX MINT でできる、プログラムの書き方がわかりません。
OSのインターフェースの違いが原因ですから、WindowsのOSと同様の動作をする環境を作ってプログラムを動作させればいいのでは?
応答ありがとうございます。
>OSのインターフェースの違いが原因ですから、WindowsのOSと同様の動作
をする環境を作ってプログラムを動作させればいいのでは?
そうなんですよ。つたない私の質問文を翻訳いただき恐縮です。
質問は、
WindowsのOSと同様の動作をする環境となるCのプログラム方法
です
例えば、 #include <XXX.h>
してWindowsのOSと同様の動作をさせるライブラリをリンクして
その中の、xxxという関数でドラッグしたファイル名を読みだして
argv[1] に代入する
等の具体的な解決策の回答を期待して質問しています。
よろしくお願いします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# プログラミングのペーパーテスト 実行結果を表示せよ #include <stdio.h> int h 1 2022/07/09 15:27
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# 至急教えてください! プログラミングの問題です! お願いします! 出力2と全く同じ出力をするように、 2 2022/06/22 23:10
- C言語・C++・C# プログラムの時、フローチャートはどうなりますか?図でお願いします。 int main(void) { 1 2022/10/01 22:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語→MATLABへの変換で、困っ...
-
vba listviewにおけるtextのAli...
-
プロダクションコードとは?
-
初級者の質問――time_tについて
-
VB5.0のプログラムをXPで
-
VBコンソールアプリ(.NET Frame...
-
デジタルフィルタ
-
VBAのプログラムが動いているか...
-
fscanf(),scanf()とBuffer Over...
-
10個の実数に対する降順ソート...
-
Excel VBA で、データベースフ...
-
2値化した画像の黒い部分のピク...
-
GitHubで拾ったプログラムが動...
-
フィボナッチヒープです
-
指定したフォルダーを最前面表...
-
c言語プログラミングについて ...
-
コンパイルエラーの意味
-
C言語でのソケット通信のclose
-
XPathの関数「text()="value"」...
-
Directxで画像を表示する方法は?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Webプログラムってネイティブア...
-
vba listviewにおけるtextのAli...
-
初級者の質問――time_tについて
-
VBA
-
COBOLのS9タイプからXタイプへ...
-
指定したフォルダーを最前面表...
-
マイコンからプログラムを読み...
-
2値化した画像の黒い部分のピク...
-
プロダクションコードとは?
-
Arduino nano(アルドゥイーノ ...
-
URLの最初の「h」を略す
-
VBコンソールアプリ(.NET Frame...
-
XPathの関数「text()="value"」...
-
世界一美しいソースコード
-
Excel VBA で、データベースフ...
-
三次元のグラフを書きたいので...
-
Visual Studio .NET C# でDLLを...
-
SH2を使いたいです
-
壁紙の変更
-
gccでスタックオーバーフローの...
おすすめ情報