首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C程序导致内存泄漏?

C程序导致内存泄漏?
EN

Stack Overflow用户
提问于 2019-06-06 05:20:38
回答 1查看 84关注 0票数 2

我使用这个非常简单的C程序每秒执行一次对php的系统调用,以便运行一个php脚本,该脚本将我的数据库中挂起的推送通知发送到APNS (Apple通知服务)。

无论如何,这个程序在大约10小时后导致内存溢出,所以我将线程创建之间的睡眠时间从1s减少到10000us,并且我可以使用htop实时看到内存在不断增加,而不是降低。下面是程序:

代码语言:javascript
复制
#include <stdlib.h>
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>

typedef struct {
    char* script_path ;
} arg_for_script ;

static void *start_instance(void *_args)
{
    int id = abs(pthread_self());
    arg_for_script* args = _args ;

    printf("[SERVICE] start php script on thread %d\n",id);
    fflush(stdout);
    char cmd[200] ;

    sprintf(cmd, "php -f %s %d", args->script_path, id );

    system(cmd);

    printf("[SERVICE] end of script on thread %d\n", id);
    fflush(stdout);



    pthread_exit(NULL);
}

int main(int argc, char* argv[])
{


    if(argc < 2)
    {
        fprintf(stderr, "[SERVICE] Path of php notification script must be filled\n");
        fflush(stderr);
        return EXIT_FAILURE;
    }

    arg_for_script args ;

    args.script_path = argv[1];

    pthread_attr_t tattr ;
    struct sched_param param;
    param.sched_priority = 1 ;

    pthread_attr_init(&tattr);

    pthread_attr_setinheritsched(&tattr, PTHREAD_EXPLICIT_SCHED);
    pthread_attr_setschedpolicy(&tattr, SCHED_FIFO);
    pthread_attr_setschedparam(&tattr, &param);



    while(1) {
        pthread_t thrd;

      //  if(pthread_create(&thrd, &tattr, start_instance, (void *)&args) == -1) {
        if(pthread_create(&thrd, NULL, start_instance, (void *)&args) == -1)
        {
            fprintf(stderr, "[SERVICE] Unable to create thread\n");
            fflush(stderr);
            return EXIT_FAILURE;
        }

        usleep( 10000);
    }

  //  pthread_attr_destroy(&tattr);
    return EXIT_SUCCESS ;

}

在这里,我没有使用malloc动态分配任何内存。为什么这个程序会增加内存使用量?我应该在这里free什么指针?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56468176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档