challenge 自分自身のファイル名を知る方法

自分自身のファイル名を知る方法を示してください。

ビルド後のファイルが、hogehoge.exeであれば、
”hogehoge.exe”が表示されるようなプログラムを書いてください。
スクリプト言語でも同様です。

ファイル名が変更されたらそれに追従するようにしてください。

Posted feedbacks - Scheme

1
2
3
(define (main args)
  (print (car args))
  0)

他の投稿を見るに、題意を読み違えてたようだ。
でも敢えて投稿。

実行後、何らかの入力を行う度にファイル名を出力する。
下の実行例は 3 回目の入力を行う前に
$ mv ownname.scm hoge.scm
とリネームしている例。
実行例:
$ ./ownname.scm 
?
ownname.scm
?
ownname.scm
?
hoge.scm
?
hoge.scm

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/gosh

(use gauche.selector)
(use gauche.process)
(use file.util)

(define (main args)
  (let ((ino (number->string (file-ino *program-name*)))
       (selector (make <selector>)))
    (selector-add! selector 
                   (standard-input-port)
                   (lambda (port flag)
                     (if (not (eof-object? (read-line port)))
                         (let1 p (run-process (list "find" "./" "-inum" ino) :output :pipe)
                           (display (sys-basename (read-line (process-output p))))
                           (newline))
                         (exit)))
                   '(r))
    (do () (#f) (selector-select selector))))

Index

Feed

Other

Link

Pathtraq

loading...