68user's page 掲示板

Prev< No. 3121〜3126> Next  [最新発言に戻る] [過去ログ一覧]
No. 3121 # Japper 2003/02/25 (火) 20:32:23
>>3114 68user
ご回答ありがとうございました
大変助かりました

さて、findコマンドでファイルを検索をかけていますが
大きいファイル順に並べ替えるなど
そのようなことはできないでしょうか?

No. 3122 # koko 2003/02/25 (火) 22:59:54
C言語のプログラムでsystem関数でプログラムを呼び出します。
引数に存在しないプログラムを指定した場合のsystem関数の戻り値が-1になる時と256になる時があります。
256の時は、上位8ビットが1なのでシェルのexitコードが1のような気がするのですが、何も環境を変えていないのに戻り値が-1や256に変わる理由が思い浮かびません。
何度も繰り返していると-1と256が不規則に交互します。
この情報だけで何か分かりますでしょうか。
よろしくお願いします。

No. 3123 # 68user 2003/02/26 (水) 01:40:04
>>3121 Japper
> さて、findコマンドでファイルを検索をかけていますが
> 大きいファイル順に並べ替えるなど
大きいってファイルサイズのことですか?
もしそうなら find . -ls | sort +7 とか。

>>3122 koko
> system関数の戻り値が-1になる時と256になる時があります。
FreeBSD の system(3) がおっしゃるには
          The system() function returns the exit status of the shell as returned by
          waitpid(2), or -1 if an error occurred when invoking fork(2) or
          waitpid(2). A return value of 127 means the execution of the shell
          failed.
だそうです。

No. 3124 # koko 2003/02/26 (水) 09:49:46
>>3123 68user
確かに、私が調べたところでも同じ事が記述されていました。
試しに簡単なmainを作って存在しないコマンドをsystemで呼び出すとsystemの戻りは256(おそらくシェルの返すexitコード=1)だけでした。
-1は戻りませんでした。
256と-1が交互になるのは何か他の原因かもしれません。
もう少し調べてみます。
ありがとうございました。

No. 3125 # koko 2003/02/26 (水) 11:46:06
>>3124 koko
256と-1が交互になる件は解決しました。
SIGCHLDのシグナルハンドラを登録してあった為、シグナルハンドラが割り込んだ時のみsystemの戻り値が-1になっていた様です。
SIGCHLDをマスクしたところ、戻り値は256で安定しました。

No. 3126 # bebe 2003/02/26 (水) 19:00:41
find コマンドについて質問があります。
ファイル名で検索をかけたいと思うのですが、
UNIXだと英数字の大文字・小文字を区別してしまうので、例えば、
「a」で検索した場合、「A」というファイルは引っかからないかと
思います。
大文字・小文字の区別無く引っ掛けたいと思うのですが、その様な
オプション又は方法はありますか?

Prev< No. 3121〜3126> Next  [最新発言に戻る] [過去ログ一覧]