2013-06-29 3 views
0

curl/curl.h를 사용하여 URL 입력을 정리하려고하는데 컴파일 할 때 다음 오류가 발생합니다. "오류 : 예상 선언 지정자 또는 '...' '엑스".C curl/curl.h Error

"char * curl_easy_escape (CURL * curl, char * Buffer, x);"코드 줄에 묶여 있습니다. 그러나 나는 그 문제가 무엇인지 모른다.

#include <stdio.h> 
#include <string.h> 
#include <stddef.h> 
#include <stdlib.h> 
#include <openssl/md5.h> 
#include <curl/curl.h> 

main(int argc, char **argv, char **envp) { 

printf("Content-type: text/html\n\n"); 

char *qPtr; 
FILE *fPtr; 
unsigned char digest[MD5_DIGEST_LENGTH]; 
int i; 
char mdString[33]; 
int x = 0; 

if(qPtr = getenv("QUERY_STRING")) { 
char Buffer[256]; 
char *Token; 
char username[80], password[80], email[80]; 
strncpy(Buffer, qPtr, 255); //copy Env variable "QUERY_STRING" into qPtr pointer 

//clean up URL 
char *curl_easy_escape(CURL * curl, char *Buffer, x); 


Token = strtok(Buffer, "&"); //get first query 
sscanf(Token, "username=%s", username); //gets value of username field input 

Token = strtok(NULL, "&"); //get second query 
sscanf(Token, "password=%s", password); //gets value of password field input 

//Execute MD5 library on password string 
MD5((unsigned char *)&password, strlen(password), (unsigned char*)&digest); 

for(i = 0; i < 16; i++) { 
    sprintf(&mdString[i*2], "%02x", (unsigned int)digest[i]); 
} //end MD5 


Token = strtok(NULL, "&"); //get third query 
sscanf(Token, "email=%s", email); //gets value of email field input 

//write username, password and email to file 
fPtr = fopen("users.txt", "a+"); 
fprintf(fPtr, "%s=", username); 
fprintf(fPtr, "%s=", mdString); 
fprintf(fPtr, "%s\n", email); 
fclose(fPtr); 

} else { printf("<p>Error: did not get a QUERY_STRING variable."); } 

} 

답변

0

시도의 변화 :

CURL *curl = curl_easy_init(); 
char *escapedBuffer = curl_easy_escape(curl, Buffer, x); 

와 마스크가 말한대로, 주요 기능은 int를 반환해야합니다 :

char *curl_easy_escape(CURL *curl, char *Buffer, x); 

와.

이를 읽어야

http://curl.haxx.se/libcurl/c/curl_easy_escape.html

0

내부 기능에서이 기능 프로토 타입을 제거하십시오. 그것은 잘못된 C 코드입니다.

char *curl_easy_escape(CURL * curl, char *Buffer, x); 

BTW, 주요 기능은해야 당신은 int 반환합니다.