草庐IT

c - SIGXFSZ 是由内核发送的,除非将某些内容打印到标准输出?

我正在学习“Unix环境中的高级编程”,第10章的练习no.11有问题。在我的程序中,我将RLIMIT_FSIZE设置为1024。因此,当写入试图超过该限制时,内核应该向我的程序发送SIGXFSZ。但我发现SIGXFSZ不会发送,除非将某些内容打印到stdout。这是我的代码:#include#include#include#include#include#include#include#defineBUFFSIZE100voidxfsz_handler(intsigno){fprintf(stderr,"%d,%s\n",signo,strsignal(signo));}intmai

c - SIGXFSZ 是由内核发送的,除非将某些内容打印到标准输出?

我正在学习“Unix环境中的高级编程”,第10章的练习no.11有问题。在我的程序中,我将RLIMIT_FSIZE设置为1024。因此,当写入试图超过该限制时,内核应该向我的程序发送SIGXFSZ。但我发现SIGXFSZ不会发送,除非将某些内容打印到stdout。这是我的代码:#include#include#include#include#include#include#include#defineBUFFSIZE100voidxfsz_handler(intsigno){fprintf(stderr,"%d,%s\n",signo,strsignal(signo));}intmai