2013-04-09 9 views
0

Я новичок в gwan и в настоящее время кодирую статический файл чтения/записи поверх gwan, однако я обнаружил, что когда я пытаюсь открыть файл (соответствующий некоторому параметру перейти к gwan), он запускает main() дважды (или бесконечный цикл), может ли кто-нибудь помочь? Благодаря!Как читать, писать файл через gwan

Вот getanddelivery.c

int main(int argc, char *argv[]) 
{ 
    global_count = 1; 
    printf("Global count : %d\n", global_count); 

    xbuf_t *reply = get_reply(argv); 
    char *name = 0; 

    while(global_count<argc){ 
      get_arg("zoneid=", &name, global_count, argv); 

      if(hadCache(name)){ 
        printf("have file\n"); 
      }else{ 
        printf("No file found!\n"); 
      } 
      global_count++; 
    } 

    xbuf_xcat(reply, "Work!"); 

    return 200; 

} 

Функция hadCache, чтобы проверить, существует ли статический файл или нет! Еще раз спасибо!


Спасибо, Гил, что ответил на мой вопрос! Я изменил код, и теперь он работает! Однако, я стараюсь использовать свой собственный файл заголовка и функцию файл на Гван под Гван/включить/myownfunction.h & hadCache.c, я обнаружил, что getanddelivery.c обычно не может вызвать hadCache функции()

#include "myownfunction.h" 

int main(){ ... } 

myownfunction.h

#include <stdio.h> 
#include <stdbool.h> 

bool hadCache(char* zoneid); 

hadCache.c

#include "myownfunction.h" 

bool hadCache(char* zoneid){...} 

Однако, это работает, если я заменю это на мой файл getanddelivery:

Replace this #include "myownfunction.h" 
By   #include "hadCache.c" 

Не могли бы вы помочь мне? Большое спасибо!

+0

Ой, я обнаружил, что непредсказуемый результат вызван файлом кеша, я не могу создать некоторые файлы кеша! – moriya

ответ

0

Ваша проблема исходит от темы-небезопасной global_count ++; переменное приращение, которое приведет к хауку при параллелизме.

Вы должны прочитать около atomicity и использовать атомную инкрементацию. См. Другой вопрос: feature request: an atomicAdd() function included in gwan.h.

+0

Большое спасибо !!!! – moriya

Смежные вопросы