林子大了就什么鸟都有,最近第一次进行2000多个设备的网络连接,没有经验,很多小问题都被放大了。今天遇到了题目上这个问题,大意就是我打开的文件超过了系统限制,在这里做一些记录
ROS我又在学了,时间比较零星,会再更新那个文集的
1 打开的文件要记得不用了就关上
比如读取ini配置文件,可以参考以下代码
/********下面是写ini文件*************************/
//Qt中使用QSettings类读写ini文件
//QSettings构造函数的第一个参数是ini文件的路径,第二个参数表示针对ini文件,第三个参数可以缺省
QSettings *configIniWrite = new QSettings("HouseManager.ini", QSettings::IniFormat);
//向ini文件中写入内容,setValue函数的两个参数是键值对
//向ini文件的第一个节写入内容,ip节下的第一个参数
configIniWrite->setValue("/ip/value", "127.0.0.1");
//向ini文件的第一个节写入内容,ip节下的第二个参数
// configIniWrite->setValue("ip/second", "127.0.0.1");
//向ini文件的第二个节写入内容,port节下的第一个参数
configIniWrite->setValue("/port/value", "3306");
configIniWrite->setValue("/databasename/value", "HouseManager");
configIniWrite->setValue("/username/value", "root");
configIniWrite->setValue("/password/value", "123456");
//写入完成后删除指针
delete configIniWrite;
/************下面是读取ini文件*******************/
QSettings *configIniRead = new QSettings("HouseManager.ini", QSettings::IniFormat);
//将读取到的ini文件保存在QString中,先取值,然后通过toString()函数转换成QString类型
QString ip = configIniRead->value("/ip/value").toString();
QString port = configIniRead->value("/port/value").toString();
QString databasename = configIniRead->value("/databasename/value").toString();
QString username = configIniRead->value("/username/value").toString();
QString password = configIniRead->value("/password/value").toString();
//打印得到的结果
qDebug() << ip;
qDebug() << port;
qDebug() << databasename;
qDebug() << username;
qDebug() << password;
//读入入完成后删除指针
delete configIniRead;
2 每个用户最大允许打开文件数量查看和配置
2.1 查看
指令:
ulimit -a
结果如下:
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 63679
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 40960
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 63679
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
open files (-n) 40960
就是对打开文件数量的限制。
2.2 配置
指令:
ulimit -n 2048