2011-03-01 2 views
0

저는 Ubuntu 10.4를 사용하고 있으며 두 개의 (긴) C 프로그램과 XDR을 사용하여 파일을 쓰는 프로그램과이 파일을 입력으로 사용하는 프로그램이 있습니다. 그러나 두 번째 프로그램은 작성된 파일을 읽을 수 없습니다. 모든 것이 완벽하게 잘 보입니다. 단지 작동하지 않습니다. 더 구체적으로 말하면, xdr_string()이라는 오류 메시지가 추가 된 마지막 줄에서 실패합니다.이 오류 메시지는 입력 파일의 첫 번째 행에서 읽을 수 없음을 나타냅니다. 명백한 오류는 보이지 않습니다. 입력 파일은 쓰여지고, 내용이 있고 나는 stings -a -n 2 "inputfile"을 사용하여 올바른 문자열을 볼 수 있습니다. 누구나 무슨 일이 일어나고 있는지 알 수 있습니까? 프로그램 1 (작가)의c를 사용하여 xdr로 쓰여진 파일을 읽는 데 문제가 있습니다.

관련 부품 : 프로그램 2 (독자)의

/** 
    * create compressed XDR output stream 
    */ 

    output_file=open_write_pipe(output_filename); 
    xdrstdio_create(&xdrs, output_file, XDR_ENCODE); 

    /** 
    * print material name 
    */ 

    if(xdr_string(&xdrs, &name, _POSIX_NAME_MAX) == FALSE) 
    xdr_err("xdr_string()"); 

관련 부품 :

/** 
    * open data file 
    */ 

    input_file=open_data_file(input_filename, "r"); 
    if(input_file == NULL){ 
    ERROR(input_filename); 
    exit(EXIT_FAILURE); 
    } 

    /** 
    * create input XDR stream 
    */ 

    xdrstdio_create(&xdrs, input_file, XDR_DECODE); 

    /** 
    * read material name 
    */ 

    if(xdr_string(&xdrs, &name, _POSIX_NAME_MAX) == FALSE) 
    XDR_ERR("xdr_string()"); 
+1

"모든 것이 완벽하게 잘 보입니다. 단지 작동하지 않습니다." 평균? 무슨 일이 잘 되니? 코드를 단계별로 실행하여 실패한 부분을 확인할 수 있습니까? – Vicky

+0

입력 파일의 첫 번째 줄에서 읽을 수 없음을 나타내는 xdr_string() 오류 메시지와 함께 여기에 추가 된 마지막 줄에서 실패합니다. 모든 것이 완벽하게 멋지다는 것은 명백한 오류가없는 것을 의미합니다. 입력 파일은 쓰여지고, 내용이 있고 나는 stings -a -n 2 "inputfile"을 사용하여 올바른 문자열을 볼 수 있습니다. – Inga

답변

0

어떻게 open_write_pipe 또는 open_data_file 일을 모르지만, 당신은 바이너리 모드에서 파일 쓰기/읽기를 시도 했습니까? 이는 Portable XDR for Windows의 경우입니다. 틀림없이 샘플은 정수형이지만 문자열에 대해서도 동일해야합니다.

관련 문제