小编vim*_*lpt的帖子

为什么在写入字符串文字时scanf无法正常工作?

include<stdio.h>
int main()
{
    //char b[10];
    char *a="goodone";
    //a=b;

    scanf("%s",a);//this scanf fails and thow segmentation fault.
    printf("%s",a);

} 
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?我用这个scanf试了很多但是,当我为我的变量保留内存a*(通过指定a = b(注释))它工作正常.否则它没有.我相信char*a会为其字符串("goodone")分配一些内存,并将该内存位置返回其值.和printf一起工作正常,为什么scanf没有?请救我这个....

c scanf

5
推荐指数
1
解决办法
1587
查看次数

node js cluster mongoose connection

我在我的应用程序中使用内置集群模块的nodejs mongodb(非分片)用于存储在每个集群(worker)中,使用mongoose.createConnection方法进行连接,并在插入数据后关闭.

但我期待的是,无论何时发出请求,它都会打开与数据库和进程请求的连接并关闭连接.

但是我注意到,当我检查mongodb日志仍然打开连接并且它的计数比处理器/(集群节点)没有大.

并且我把poolSize:1,autreconect:false,即使在调用close()方法之后,仍然有些连接没有关闭.

我的观察是当连接错误发生时连接未关闭请帮助我

我正在使用以下脚本来获取连接.

module.exports.getDb = function () {

    var dburl = 'mongodb://localhost/DB';


    db = mongoose.createConnection(dburl, {
        server: {
            socketOptions: {
                keepAlive: 1,
                connectTimeoutMS: 30000
            },
            auto_reconnect: false,
            poolSize: 1

        }

    }, function (err) {

        console.log(err)
    });

    db.on('error', function (err) {
        console.log(err + " this is error");
        db.close();
    });

    return db;

}
Run Code Online (Sandbox Code Playgroud)

我在evey查询回调结束时使用db.close()关闭连接.

mongoose mongodb node.js

5
推荐指数
1
解决办法
1716
查看次数

标签 统计

c ×1

mongodb ×1

mongoose ×1

node.js ×1

scanf ×1