Linuxにdspcatのようなユーティリティはありますか?


9

AIXで次のdspcatコマンドを使用して、コマンドで作成されたメッセージカタログをダンプできます。gencat

dspcat –g  /u/is/bin/I18N/l/lib/libca/libcalifornia.117.cat >> /tmp/message.smc

Linuxでこれらのカタログの1つをダンプする方法のヒントを探すのに十分な時間を費やしましたが、このコマンドは使用できないようです。任意の助けいただければ幸いです。


そこもあまり見ていません。stringsコマンドは、必要なものを取得するのに十分でしょうか?たぶん、少し後処理しますか?
Sean Perry

文字列はエンコードされている可能性があります... shiftjis文字列が文字列カタログファイルから適切に外れるかどうかは完全にはわかりません...いくつかのテストを試すことができます。
ojblass 14年

内容に価値がある場合、形式はリバースエンジニアリングするのに難しくありません。
Sean Perry

回答:


3

私はのためのソースコードを見つけるdspcat.chttp://www.smart.net/~rlhamil/を。特にこのtarballで。私はそれをコンパイルしようとしましたが、変数がありませんでした:

$ make
cc -O -DSOLARIS    dspcat.c   -o dspcat
dspcat.c: In function ‘format_msg’:
dspcat.c:11:23: error: ‘NL_TEXTMAX’ undeclared (first use in this function)
    static char result[NL_TEXTMAX*2+1];
                       ^
dspcat.c:11:23: note: each undeclared identifier is reported only once for each function it appears in
dspcat.c: In function ‘print_file’:
dspcat.c:240:23: error: ‘NL_SETMAX’ undeclared (first use in this function)
    int setlo=1, sethi=NL_SETMAX, msglo=1, msghi=NL_MSGMAX, x, y;
                       ^
dspcat.c:240:49: error: ‘NL_MSGMAX’ undeclared (first use in this function)
    int setlo=1, sethi=NL_SETMAX, msglo=1, msghi=NL_MSGMAX, x, y;
                                                 ^
dspcat.c: In function ‘main’:
dspcat.c:338:30: error: ‘NL_MSGMAX’ undeclared (first use in this function)
       if (msg_nr<1 || msg_nr>NL_MSGMAX) {
                              ^
dspcat.c:353:32: error: ‘NL_SETMAX’ undeclared (first use in this function)
       if (msg_set<1 || msg_set>NL_SETMAX) {
                                ^
make: *** [dspcat] Error 1

変数NL_SETMAXがシステムで定義されていないようです。私はこのヘッダーファイルを見つけましbits/xopen_lim.hたが、これにはこの変数が含まれていたので、これを気まぐれなヘッダーのリストに追加しました。

$ make
cc -O -DSOLARIS    dspcat.c   -o dspcat
dspcat.c: In function ‘format_msg’:
dspcat.c:11:33: warning: integer overflow in expression [-Woverflow]
    static char result[NL_TEXTMAX*2+1];
                                 ^
dspcat.c:11:16: error: size of array ‘result’ is negative
    static char result[NL_TEXTMAX*2+1];
                ^
dspcat.c:11:16: error: storage size of ‘result’ isn’t constant
dspcat.c:15:29: warning: integer overflow in expression [-Woverflow]
    for (x=0; x < (NL_TEXTMAX*2) && *s != '\0'; s++)
                             ^
make: *** [dspcat] Error 1

もっと時間があれば、これを試してみますが、コード内でその変数を静的に直接設定すると、これを自分でコンパイルできると思います。


私は50くらいのように、このおかげで作業することができます
ojblass
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.