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_SETMAX
khô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.h
nó đã 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ó.
strings
lệnh là đủ để có được những gì bạn cần? Có lẽ với một chút xử lý bài?