在MacOS上调用abort()会导致陷阱,但不会产生核心转储

时间:2019-06-09 10:10:23

标签: c macos gcc clang abort

我正在研究Linux系统编程,并且正在尝试abort()函数。我正在学习的书中指出,调用abort()会导致在退出进程之前写入文件core,然后将Abort (core dumped)写入stdout(我在某些中止操作中也确认了此输出有关的问题)。但是,通过这个简单的程序

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>

int main()
{
    printf("Starting process %d\n", getpid());

    abort();
    return 0;
}

我得到以下输出

Starting process 2753
Abort trap: 6

,没有文件生成。我不明白为什么。该文件的权限为0777。为什么会这样?

P.S .:我正在使用macOS Mojave,编译器是gcc,所以我认为。可能是c声。。。这是gcc -v的输出:

Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/c++/4.2.1
Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

但是,which gcc的输出为/usr/bin/gcc

0 个答案:

没有答案