Я изучаю системное программирование в Linux и пробую функцию abort()
.В книге, из которой я изучаю, отмечается, что вызов abort()
приводит к записи файла core
до выхода из процесса и записи Abort (core dumped)
в стандартный вывод (я также подтвердил этот вывод в некоторых вопросах SO, связанных с прерыванием работы),Однако из этой простой программы
#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
.Любые идеи о том, почему это происходит?
PS: я использую macOS Mojave, компилятор gcc, или я так думаю.Это может быть лязг ... Это вывод 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
.