68user's page 掲示板

Prev< No. 3469〜3485> Next  [最新発言に戻る] [過去ログ一覧]
No. 3469 # zsh 2003/12/13 (土) 22:29:33
すみません徹夜明けでボケてました。
吊って来ます・・・

No. 3470 # くに 2003/12/15 (月) 10:32:40
>>3463 has

俺には美しいやり方なんて無理ですが、ファイルじゃないだけなら
% ( true ; rc = $? ) | tee > kekka.txt
てのは?;-)

私は、HP-UXを使用しているのですが、
% ( true ; rc = $? )
と実行するとシステムのシャットダウンになります。
他のOSも同じだと思うのですが、使用するときは注意した方が
良いと思います。

No. 3471 # 68user 2003/12/15 (月) 13:38:04
>>3470 くに
> % ( true ; rc = $? )
> と実行するとシステムのシャットダウンになります。
/etc に PATH が通っていたため /etc/rc が実行されたのではないかと
思います (引数は = と $?)。

sh の変数代入は = の前後に空白を入れてはいけないので、
rc = $? でなく、rc=$? ですね。

No. 3472 # hanzen 2003/12/15 (月) 16:02:20
lsコマンドについて質問です。
lsと実行するとファイル名やディレクトリ名が表示されますが、
ファイル名だけとかディレクトリ名だけとかを表示させたいの
ですが、できるのでしょうか。
manで調べてみたのですが該当するものもありません。
何かと組み合わせてて1行でできないものでしょうか。

No. 3473 # 68user 2003/12/15 (月) 16:06:28
>>3472 hanzen
> lsと実行するとファイル名やディレクトリ名が表示されますが、
> ファイル名だけとかディレクトリ名だけとかを表示させたいの
> ですが
以下のやりとりを参考にしてください。
>>3245 bebe
>>3246 68user

No. 3474 # has 2003/12/16 (火) 01:44:53
>>3465 68user
すみません、勘違いしてました。
3463 でできたと思っていたら、1行ずつ実行したときにセットした
rcの値が表示されただけでした。

>>3470 くに
それは予想していませんでした。
何にせよ紛らわしいのはよくないですね。
気をつけます。

というわけで何かよい方法はないか探してみましたが、
bashだとこういうのがあるみたいです。
(ただしシェルスクリプト内限定らしいですが)

$ echo $BASH_VERSION
2.05b.0(1)-release
$ cat pipetest.sh
#!/bin/bash
true | false | true | false
echo ${PIPESTATUS[@]}
$ ./pipetest.sh
0 1 0 1

あとはこんなん:-<

cp /dev/null kekka.txt ; tail -f kekka.txt &
pid=$! ; command > kekka.txt ; st=$? ; kill $pid
echo $st

No. 3475 # zsh 2003/12/16 (火) 07:02:54
>>3465 68user
恥の上塗り。

いろいろと試してみましたが、
ファイルを作成せずにステータスは取得できそうにありません。
後は作成するファイルが通常のファイルかFIFOかくらいの違いでしょうか?

------
#!/bin/sh
fifo="fifo.$$"
mkfifo -m 600 $fifo

trap "rm -f $fifo" 0 1 2 3 15
( command ; echo $? >$fifo ) | tee kekka.txt &
rtn=`cat $fifo`
echo $rtn

>>3472 hanzen
>>3473 68user
後は
ls -F | grep '/'
とかでしょうか。表示に/がついてしまいますが。

No. 3476 # 2003/12/17 (水) 11:19:43
UNIXでファイルを開かずにファイルの解析を行いたいのですが、
fileコマンドでは実行ファイルなのかどうかなど、詳しいことが
わかりませんでした。
#C言語関連のソースかどうか確認したいのです。

何か、他にいい方法はないでしょうか?
教えていただけるとありがたいですm(__)m

No. 3477 # tomo 2003/12/17 (水) 15:01:54
こんにちは。
以前、こちらで幾らか質問させて頂いた tomo と申します。
今、perlでタイマ処理をする事を考えているのですが、
perlではC言語の様にタイマIDという形で複数のタイマを
識別管理する事は出来ないのでしょうか?

No. 3478 # 68user 2003/12/19 (金) 00:50:36
>>3476
調べたいのは
> fileコマンドでは実行ファイルなのかどうか

> C言語関連のソースかどうか
のどちらですか?

「〜かどうか判定したい」ということなら、何らかの判断基準が
ないと判定できませんので、そこらへんを明確にしてください。

>>3477 tomo
> perlではC言語の様にタイマIDという形で複数のタイマを
> 識別管理する事は出来ないのでしょうか?
C にも perl にもタイマ ID という概念はありません。

そもそも「タイマ ID」とは Win32API (MFC?) のそれですか?

なら、perl で Win32API を利用できるモジュールを探せば
できるでしょうが、あいにく Windows には明るくないので
    http://www.cpan.org
から探してみてください。

No. 3479 # なっち 2003/12/20 (土) 14:14:55
68user 様

UNIXの部屋等、ちょくちょく参考にさせて頂いております。ありがとうございます。

私、現在、DNSまわりのプログラミングを行っておりまして、ネットワークプログラミングの基礎知識の
DNS クライアントを作ってみようのページを、基礎から理解する意味で読ませて頂いたのですが、
この(2)のページ、http://x68000.startshop.co.jp/~68user/net/resolver-2.html
DNSヘッダのフラグの部分の第13〜15bitの3bitがRCODEとなっていますが、これは第13〜16bitの4bit分の
間違いだと思うのですがいかがでしょうか。

細かい部分で申し訳ないのですが、気になりましたのでご報告させて頂きました。お忙しいとは思いますが、
よろしくお願いいたします。

No. 3480 # 68user 2003/12/20 (土) 22:35:38
>>3479 なっち
ご指摘ありがとうございます。修正しました。ついでに
    1…15bit、16…31bit
となっていたものを
    1…16bit、17…32bit
に修正しました。

# http://x68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/org/resolver-2.html

しかし、一般的には MSB を第 0bit とする場合が多いでしょうか?
「詳解TCP/IP Vol.1」では 0〜31bit となっていましたので、
悩むところです。

No. 3481 # へにか [URL] 2003/12/21 (日) 00:08:07
何をもってして一般的というかによりますが・・・

ハードウェアでは、例えばverilogのバス表記の例にとると、
[15:0] > [0:15] >>> [1:16]という頻度で見かけます。

僕の知っている限りの物理層では、[0]が時間軸で最初に
送受信されるので、[0:15]という表記が現れます。
とはいえ、中身を解釈する際に、[15:0]のように置き換え
ないと、人間には理解し難い事が多々あり、そのような処理
は僕はよくします。

No. 3482 # 2003/12/24 (水) 00:15:56
awkの使い方について教えて下さい。
awkを使用して、以下の出力を、数字は、3桁毎にカンマで区切り、
出力位置を揃えて出力したいのですが、
180 file1.txt
1821 file2.txt
113457 fil3.txt

        180 file1.txt
    1,821 file2.txt
113,457 file3.txt
と出力したいのですが、
数字の部分を揃えることができません。
そのため、たの部分もそろいません。
どうすれば上手くできますか。

-------------------------------
#!/bin/sh
#

cat list.txt | sort -n -r | awk '
        function put_comm(val) {
                if (val < 1000) {
                        printf("%d",val) ;
                } else {
                        put_comm(val / 1000) ;
                        printf(",%03d",val % 1000) ;
                }
        }
        {
                if ($1 < 1000) {
                        printf("%d",$1) ;
                } else {
                        val=$1 ;
                        put_comm(val) ;
                }
        }
        {
                  #printf "\n"
                  printf(" %s\n",$2)
        }'

No. 3483 # tonpei 2003/12/24 (水) 15:15:14
いつも参考にさせていただいてます

dtterm上で動作するC言語のプログラムを作成しています
そのプログラムで、cursesのwaddchとwrefreshを使用して1画面分の描画を1文字ずつ行っているのですが、
その際にカーソル表示がされているため、ちらついてしまいます
カーソルを一時的に消す方法は無いでしょうか?

ちなみに、waddchで画面編集後、最後にwrefreshを1回呼ぶ方法ですと、
一気に1画面分を表示できるのですが、編集時間が長く感じられるため、
1文字ずつパラパラと表示したいと考えています。

No. 3484 # zsh 2003/12/24 (水) 18:16:33
>>3482
桁数の上限がわからないと駄目ですが
こんなのでどうでしょ?(下では8桁まで)

------
$ cat list
123 file1.txt
123456 file2.txt
1234567 file3.txt
$ cat test.awk
#!/bin/nawk -f
{
                i = sprintf("%d",length($1) / 3) ;
                j = sprintf("%d",length($1) % 3) ;
                if ( i > 1 ) {
                                if ( j == 0 ) j = 3 ;
                                str_buf = sprintf("%s",substr($1,0,j)) ;
                                for ( k=0 ; k<i ; k++ ) {
                                                cut_str = substr($1,j+(k*3)+1,3) ;
                                                if ( cut_str == "" ) break ;
                                                str_buf = sprintf("%s,%s",str_buf,cut_str) ;
                                                cut_str = "" ;
                                }
                } else {
                                str_buf = $1 ;
                }
                printf("%10s %s\n",str_buf,$2) ;
}

$ ./test.awk list
              123 file1.txt
      123,456 file2.txt
  1,234,567 file3.txt

No. 3485 # 68user 2003/12/24 (水) 19:01:30
>>3481 へにか
> 僕の知っている限りの物理層では、[0]が時間軸で最初に
> 送受信されるので、[0:15]という表記が現れます。
なるほど。ネットワークプログラミングでは当然ネットワーク
バイトオーダで MSB が先になるわけなので、
      [0:15] か [1:16]
のどちらかで決まりですね。

個人的には「プログラマたるもの数えるときは 0 から」という
ことで、そのうち [0:15] に修正しておこうと思います。


>>3483 tonpei
curses はよくわかってませんが、curs_set(0) ですかね。

capability 的には cursor_invisible (vi) っぽいです。

ただ、端末エミュレータにカーソルを消す機能があるかという
問題があるかもしれません。うちの FreeBSD の /etc/termcap に
      xterm-basic|xterm common (XFree86):...:vi=\E[?25l:...
とあったので xterm で
      % printf "\033[?25l"
とするとカーソルが消えましたが、kterm-6.2.0_5 では消えません
でした。kterm にカーソルを消す機能がないような感じがします。

でもまぁ dtterm なら多分大丈夫だとは思います。

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