簡體   English   中英

C curl / curl.h錯誤

[英]C curl/curl.h Error

我正在嘗試使用curl / curl.h清理URL輸入,但是在編譯時出現以下錯誤:“錯誤:預期的聲明說明符或'x'之前的'...'。

它與以下代碼行綁定:“ 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."); }

}

從內部函數中刪除此函數原型。 這是無效的C代碼。

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

順便說一句,您的主要功能應返回一個int

嘗試更改:

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

與:

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

正如The Mask所說,您的main函數應該返回一個int

您應該閱讀以下內容:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM