我正在研究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
。