小编aax*_*aax的帖子

在macOS Sierra中启用崩溃进程的核心转储

我需要为SIGABRT,SIGBUS,etc等终止的进程启用核心转储文件创建.

在以前版本的MAC OS X(包括ElCapitan)中,我将为所有进程启用Code Dumps文件:

sudo sysctl -w kern.corefile=/Users/tester/core.%U.%P.%N.dump
sudo sysctl -w kern.coredump=1
sudo launchctl limit core unlimited
sudo ulimit -c unlimited
launchctl limit core unlimited
ulimit -c unlimited
Run Code Online (Sandbox Code Playgroud)

现在这种方式不起作用.在本网站上讨论新的gcore命令,但它适用于运行进程.对于KernelCoreDumps,您现在必须启用NVRAM变量官方.

coredump ulimit sysctl macos-sierra

6
推荐指数
1
解决办法
1439
查看次数

getopt(3) 在 mac os 和 CentOS 上

我在 OSX 和 CentOS 上通过 gcc 编译相同的代码:

while (( opt = getopt (argc, argv, "hp:" )) != -1 )
    {
        fprintf (stderr,"+++++++++++ %d\n\n", opt );
        switch ( opt )
            {
            case 'h':
                    fprintf(stderr, "Help Page \n %s", help_str);
                    return 1;

            case 'p':
                    filename = optarg ;
                    fprintf(stderr,"================== %s\n",optarg);
                    break;

            case '?':
                    printf("ZHZHZHZHZHUT\n");
                    return 3;

            default:
                break;
            }
    }
Run Code Online (Sandbox Code Playgroud)

然后我尝试运行./a.out -p ./file.txt ya.ru./a.out ya.ru -p ./file.txt 在 CentOS 6.5 上,两个变体都可以工作。

但在 MAC OS X(10.9) 变体上./a.out ya.ru -p …

c macos centos getopt

3
推荐指数
1
解决办法
1594
查看次数

标签 统计

c ×1

centos ×1

coredump ×1

getopt ×1

macos ×1

macos-sierra ×1

sysctl ×1

ulimit ×1