Có một tiện ích như dspcat trên Linux không?


9

Tôi sử dụng dspcatlệnh sau trên AIX và có thể kết xuất các danh mục tin nhắn được tạo bằng gencatlệnh:

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

Tôi đã dành một giờ đồng hồ tốt để tìm gợi ý về cách kết xuất một trong những danh mục này trên Linux nhưng lệnh này dường như không có sẵn. Bất kỳ trợ giúp sẽ được đánh giá cao.


Tôi cũng không thấy nhiều ở đó. Sẽ stringslệnh là đủ để có được những gì bạn cần? Có lẽ với một chút xử lý bài?
Sean Perry

các chuỗi có khả năng được mã hóa ... tôi không hoàn toàn chắc chắn nếu một chuỗi shiftjis có rơi ra khỏi tệp danh mục chuỗi hay không ... Tôi có thể thử một số thử nghiệm.
ojblass

Định dạng có thể không quá khó để đảo ngược kỹ sư nếu nội dung có giá trị.
Sean Perry

Câu trả lời:


3

Tôi tìm thấy mã nguồn cho dspcat.c: http://www.smart.net/~rlhamil/ . Cụ thể trong tarball này . Tôi đã thử biên dịch nó và thiếu một biến:

$ 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

Biến NL_SETMAXkhông xuất hiện để được xác định trên hệ thống của tôi. Tôi đã xác định vị trí tệp tiêu đề này, bits/xopen_lim.hnó đã có biến này vì vậy tôi đã thêm nó vào danh sách các tiêu đề bất chợt.

$ 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

Nếu tôi có nhiều thời gian hơn, tôi sẽ chơi với nó, nhưng tôi tin rằng nếu bạn đặt trực tiếp biến đó trong mã, bạn có thể tự biên dịch nó.


Tôi có thể làm việc với điều này nhờ rất nhiều +50
ojblass
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.