質問します。
C言語のみで以下のことは可能でしょうか?
(Windows 環境下です。すなわち DOS 窓から起動します)

1.起動されたプログラムのフルパスを取得する

2.あるフォルダ内の全ファイル名を取得する

3.あるファイルのコピーを作成する


1.については、argv[0] にフルパスが渡される処理系なら、それを使えばいいような気がしますが、
もしファイル名のみの処理系の場合、どのようにしたらいいのですか?
そもそも、argv[0] を使うのはマズイですか?

2.ですが、これは system 関数で DOS の dir コマンドを実行し、それをファイルに取り、
そこから引っぱり出す、というくらいしか思いつきません。

3.は、Cにはファイル削除とリネームの関数はあるのに、なぜファイルコピーが
無いのだろう、と疑問でした。fopen と while と fget などで自力コピーするしか
方法はないのかな?


長文すみません。よろしくお願いします。