Чи є така утиліта, як dspcat в Linux?


9

Я використовую таку dspcatкоманду на AIX і можу скинути каталоги повідомлень, створені за допомогою gencatкоманди:

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

Я витратив добру солідну годину, шукаючи підказки, як скинути один з цих каталогів на Linux, але ця команда, здається, не доступна. Будь-яка допомога буде вдячна.


Я там теж багато не бачу. Чи stringsвистачило б команди, щоб отримати те, що вам потрібно? Можливо, з невеликою обробкою публікації?
Шон Перрі

рядки, ймовірно, закодовані ... Я не зовсім впевнений, що строка shiftjis належним чином випаде з файлу рядків каталогів ... Я можу спробувати тестувати.
ojblass

Формат, ймовірно, не надто важкий для інженерів зворотного зв'язку, якщо вміст є цінним.
Шон Перрі

Відповіді:


3

Я знайшов вихідний код за адресоюdspcat.c : http://www.smart.net/~rlhamil/ . Зокрема в цьому тарболі . Я спробував компілювати його і не вистачало змінної:

$ 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.