如何读,写文件over gwan



我是gwan的新手,目前在gwan上编写读/写静态文件,然而,我发现当我试图打开文件(对应于传递给gwan的一些参数)时,它会运行main()两次(或无限循环),有人可以帮助吗?谢谢!

这是getanddelivery.c

int main(int argc, char *argv[])
{
    global_count = 1;
    printf("Global count : %dn", 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 filen");
          }else{
                    printf("No file found!n");
          }
            global_count++;
    }
    xbuf_xcat(reply, "Work!");
    return 200;
}

函数hadCache用于检查静态文件是否存在!再次感谢! !


谢谢你吉尔回答我的问题!我修改了代码,它现在工作了!但是,我尝试在gwan/include/myownfunction.h &下使用我自己的头文件和函数文件。我发现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"

你能帮帮我吗?谢谢大家!

您的问题来自线程不安全的global_count++;可变增量,这会导致并发性下的havock

您应该阅读原子性,并使用原子递增。特性请求:一个atomicAdd()函数包含在gwan.h.

相关内容

  • 没有找到相关文章

最新更新