You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行C程序时出现libc.so.6加载错误(Error 24)求助

解决libc.so.6无法加载(Error 24)的问题

Error 24对应EMFILE,本质是系统或进程打开的文件描述符数量达到上限,导致sh进程无法打开libc.so.6共享库。以下是针对性的排查与解决步骤:

  • 临时调高进程文件描述符上限
    执行命令查看当前上限:

    ulimit -n
    

    若数值较低(如默认1024),临时调整:

    ulimit -n 4096
    

    该调整仅对当前会话有效,永久生效需编辑/etc/security/limits.conf,添加:

    * soft nofile 4096
    * hard nofile 8192
    

    保存后重新登录或重启系统。

  • 调整系统全局文件描述符上限
    查看系统级上限:

    cat /proc/sys/fs/file-max
    

    临时调高:

    echo 100000 > /proc/sys/fs/file-max
    

    永久生效需编辑/etc/sysctl.conf,添加:

    fs.file-max = 100000
    

    执行sysctl -p使配置立即生效。

  • 排查占用大量文件描述符的进程
    即便ps未找到目标C程序,可能有其他进程占用过多资源,执行以下命令排查:

    # 查看系统总打开文件数
    lsof | wc -l
    # 按进程ID排序,查看占用最高的进程
    lsof | awk '{print $2}' | sort | uniq -c | sort -nr
    

    找到异常进程后,根据实际情况终止或优化。

  • 验证并修复libc库完整性
    确认sh依赖的libc路径正常:

    ldd /bin/sh
    

    若输出中libc.so.6存在损坏或路径异常,重新安装glibc:

    apt-get install --reinstall libc6
    

内容的提问来源于stack exchange,提问作者vrooom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 18:55:35