2012-12-17 3 views
0

우리는 centos 6.2 플랫폼에서 C 언어로 여러 개의 전자 메일을 보내려고합니다. 아래는 코드입니다. 오류는 경고입니다 : 내장 함수 sprintf의 암시 적 선언이 호환되지 않습니다.CentOS에서 c를 통해 전자 메일을 보내려는 Sprintf 오류

이 문제를 해결하는 방법은 무엇입니까?

#include <stdlib.h> 
#include <string.h> 

#define cknull(x) if((x)==NULL) {perror(""); exit(EXIT_FAILURE);} 
#define cknltz(x) if((x)<0) {perror(""); exit(EXIT_FAILURE);} 
#define LIST_LEN 4 


void main()           
{                  
    char tmp[256]={0x0};             
    char fpBuffer[512]={0x0};           
    char email_list[LIST_LEN][256]={ {"****@gmail.com"},    
           {"****@gmail.com"},    
           {"***@gmail.com"},   
           {0x0}};         
    int i=0;                
    char *filename = "";                  
    for(i=0;*email_list[i]>0x0;i++)         
    {                 
     cknull(strcpy(tmp, email_list[i]));        
     cknltz(sprintf (fpBuffer,          
      "/usr/bin/mailx -s '%s %s' %s < %s",       
      "Please Review:",           
      filename,             
      tmp,               
      filename));             
     if(system (fpBuffer)==(-1))          
     {                
      perror("email failure");          
      exit(EXIT_FAILURE);           
     }                
    }                 
} 
+0

'int main()'입니다. – alk

+0

C99에서'int main (void)'입니다. –

+0

@MikeKwan : 더 나은, thx! – alk

답변

4

다음 누락 : 당신은 프로토 타입 부족

#include <stdio.h> 
+0

나는 char * filename = ""을 추가하고 나갔다. sh : TEST : 해당 파일이나 디렉토리가 없습니다. sh : 테스트 : 해당 파일이나 디렉토리가 없습니다. sh : 테스트 : 해당 파일이나 디렉토리가 없습니다. 메시지를 추가하면 또 다른 오류 경고가 표시됩니다. 내장 함수 묵시적 선언은 – user1909888

0

지적한다. 더 문제가 몇 가지 내가 언급 할 가치 느낌 :

이 :

*email_list[i]>0x0 

char가 서명, 또는 모든 유효한 문자가 0보다 큰 그 적어도이 휴대용에 대한 올바른 가정 아니라고 가정 코드, 그것은뿐만 이것을 쓰는 것이 낫다 그래서 (! 16 진수)

email_list[i][0] != '\0' 
나는 또한 더 장황 왜 그냥 일반 "", 같은 감시 ( email_list에 대한 초기화의 마지막 값)을 작성합니다

numerica을 빈 문자열이 무슨 뜻인지 상수일까요?

내가 말하고자했던 마지막 것은 snprintf()을 사용하라는 제안 이었지만, 그 자체의 이식성 문제가 있기 때문에 위의 예에서 매우 합리적인 제안이 아닙니다. :)

+0

변경되었습니다. email_list [i] [0]! = '\ 0'을 변경할 수 있지만이 값도 변경됩니다 {0x0}} ; stdio.h 라이브러리를 추가했지만 위의 응답에 언급 된대로 오류가 발생합니다. – user1909888

관련 문제