ak491980

ak491980

0个粉丝

34

问答

0

专栏

8

资料

ak491980  发布于  2020-02-29 18:18:09
采纳率 0%
34个问答
2336

如何让udhcpc占用更少的内存?

       
这个问题的表面现象是用system调用的方式执行udhcpc会失败。解释:由于system是通过fork实现的,而子进程会复制父进程的VM空间,当父进程占用较多VM空间,很容易导致system调用失败。其本质是子进程分配VM空间失败导致的。
解决方法:执行:echo 1 > /proc/sys/vm/overcommit_memory即可。

更好的解决办法是不使用system调用方法,而是使用posix_spawn调用,简单的示例如下:

[code]#include
#include
#include
#include
#include
#include
int main(int argc, char* argv[])
{
  pid_t pid;
  int err;
  char *spawnedArgs[] = {"/bin/ls","-l","/home ",NULL};/* posix_spawn需要指定子进程的命令的全路径(绝对路径) */
  char *spawnedEnv[] = {NULL};
  
  printf("Parent process id=%ld\n", getpid());
  if( (err=posix_spawn(&pid, spawnedArgs[0], NULL, NULL,
         spawnedArgs, spawnedEnv)) !=0 )
{
    fprintf(stderr,"posix_spawn() error=%d\n",err), exit(-1);
}
printf("Child process  id=%ld\n", pid);
   
  /* Wait for the spawned process to exit */
  (void)wait(NULL);

  return 0;
}[/code]

posix_spawn的更多用法,请自行上网搜索。
我来回答
回答0个
时间排序
认可量排序
易百纳技术社区暂无数据
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区