2016-04-18 2 views
0

Так ... Ладно я новичок, так что не слишком суровы :)Loop в C Проблемы с Loop

У меня есть эта часть кода, который я хочу, чтобы выполнить все время. Но когда я делаю цикл while (или любой цикл) вокруг него - он просто выполняется (поэтому цикл по какой-то причине не работает). Вопрос: Как я могу создать постоянный цикл для этого кода?

int main(void) 
{ 
    int temp = 0; 
    while (temp != 1) {  //here is the loop i was trying 



     CURL *curl; 
     CURLcode res; 
     FILE *hd_src; 
     struct stat file_info; 
     curl_off_t fsize; 

     struct curl_slist *headerlist = NULL; 
     static const char buf_1[] = "RNFR " UPLOAD_FILE_AS; 
     static const char buf_2[] = "RNTO " RENAME_FILE_TO; 


     if (stat(LOCAL_FILE, &file_info)) { 


      printf("Couldnt open '%s': %s\n", LOCAL_FILE, strerror(errno)); 
      return 1; 
     } 
     fsize = (curl_off_t)file_info.st_size; 

     printf("Local file size: %" CURL_FORMAT_CURL_OFF_T " bytes.\n", fsize); 


     hd_src = fopen(LOCAL_FILE, "rb"); 


     curl_global_init(CURL_GLOBAL_ALL); 


     curl = curl_easy_init(); 
     if (curl) { 



      headerlist = curl_slist_append(headerlist, buf_1); 
      headerlist = curl_slist_append(headerlist, buf_2); 


      curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback); 


      curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L); 


      curl_easy_setopt(curl, CURLOPT_URL, REMOTE_URL); 


      curl_easy_setopt(curl, CURLOPT_POSTQUOTE, headerlist); 


      curl_easy_setopt(curl, CURLOPT_READDATA, hd_src); 


      curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE, 
       (curl_off_t)fsize); 


      res = curl_easy_perform(curl); 

      if (res != CURLE_OK) 

       fprintf(stderr, "curl_easy_perform() failed: %s\n", 
       curl_easy_strerror(res)); 


      curl_slist_free_all(headerlist); 


      curl_easy_cleanup(curl); 
     } 
     fclose(hd_src); 

     curl_global_cleanup(); 
    } 

    return 0; 
} 

ответ

0

Что я обычно делаю, чтобы сделать бесконечный цикл:

while(true) // In C you can also write 'while(1)' 
{ 
    // Your code 
} 

Чтобы быть уверенным, что ваша петля на самом деле «зацикливания», просто сделать переменную я, который увеличивает все время, и распечатать его:

int i = 0; 
while(true) 
{ 
    i++; 
    print("Loop iteration: " + i); 
    // Your code here. 
} 

Если оператор печати выдает ошибку, так как переменная «я» является целым числом, проверить эту ссылку: Converting int to string in c

EDIT

Если ваша программа просто останавливается без дальнейших подробностей, вы, вероятно, есть ошибка. Что я буду делать:

int i = 0; 
while(true) 
{ 
    i++; 
    // Some code here 
    print("I got to this point."); 
    // Some more code 
    print("Yet another milestone reached."); 
    // Some more code 
    print("The end of loop: " + i); 
} 

По крайней мере, вы получаете какой-то результат. И вы можете узнать, где, вероятно, ошибка.

Удачи :-)

+0

Thx ... Все-таки не работает, хотя (он работает и выключается ... – Raven

+0

Возможно потому, что есть какая-то ошибка в коде. –

+1

Да! Понял) Thankx! – Raven