system()调用出错提示 Cannot allocate memory

hyd034 2012-07-04 10:58:50
INT DISK_CreateDir(CHAR * FilePath) //创建文件夹
{
DIR *dirp = NULL;
CHAR Command[COMMAND_LEN] = {0};
if(NULL==FilePath){
NVR_DEBUG("create %s fail",FilePath);
return FALSE;
}
if(NULL==(dirp=opendir(FilePath))){
sprintf(Command,"mkdir -p %s",FilePath);

if(0!=system(Command)){
NVR_DEBUG(" %s fail,errno=%d",Command,errno);
perror("mkdir fail:");
return FALSE;
}else{
NVR_DEBUG(" %s ok",Command);
if(dirp) closedir(dirp);
dirp = NULL;
return TRUE;
}
}else{
NVR_DEBUG("file Exist");
if(dirp) closedir(dirp);
return TRUE;
}
}

程序执行时提示出错:
mkdir fail:: Cannot allocate memory
...全文
976 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
沭水河畔 2012-07-04
  • 打赏
  • 举报
回复
调一下栈大小试试,用ulimit。
system()的实现 ≈ fork + exec
fork的特点大家都知道,当程序占内存很大时,fork一次也是不小的开销。
有一种可行的做法是另开一个小程序来处理系统命令,主应用程序通过进程间通信的方式发送命令给小程序,小程序再来执行。
hyd034 2012-07-04
  • 打赏
  • 举报
回复
单独测试函数可以创建成功:
int main()
{
DISK_CreateDir("/mnt/sda1/a/b/c");
}
供其他函数调用时就会出现Cannot allocate memory 错误
赵4老师 2012-07-04
  • 打赏
  • 举报
回复
C:\>mkdir /?
Creates a directory.

MKDIR [drive:]path
MD [drive:]path

If Command Extensions are enabled MKDIR changes as follows:

MKDIR creates any intermediate directories in the path, if needed.
For example, assume \a does not exist then:

mkdir \a\b\c\d

is the same as:

mkdir \a
chdir \a
mkdir b
chdir b
mkdir c
chdir c
mkdir d

which is what you would have to type if extensions were disabled.
赵4老师 2012-07-04
  • 打赏
  • 举报
回复
写个临时bat文件,调用这个临时bat文件再试试?
课程演示环境:Ubuntu   需要学习Windows系统YOLOv4-tiny的同学请前往《Windows版YOLOv4-tiny目标检测实战:训练自己的数据集》   YOLOv4-tiny来了!速度大幅提升!   YOLOv4-tiny在COCO上的性能可达到:40.2% AP50, 371 FPS (GTX 1080 Ti)。相较于YOLOv3-tiny,AP和FPS的性能有巨大提升。并且,YOLOv4-tiny的权重文件只有23MB,适合在移动端、嵌入式设备、边缘计算等设备上部署。   本课程将手把手地教大家使用labelImg标注和使用YOLOv4-tiny训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。   本课程的YOLOv4-tiny使用AlexAB/darknet,在Ubuntu系统上做项目演示。包括:YOLOv4-tiny的网络结构、安装YOLOv4-tiny、标注自己的数据集、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类分析。     除本课程《YOLOv4-tiny目标检测实战:训练自己的数据集》外,本人推出了有关YOLOv4目标检测的系列课程。请持续关注该系列的其它视频课程,包括: 《YOLOv4目标检测实战:训练自己的数据集》 《YOLOv4目标检测实战:人脸口罩佩戴识别》 《YOLOv4目标检测实战:中国交通标志识别》 《YOLOv4目标检测:原理与源码解析》

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧