我正在試驗PERF_EVENTS,這是Linux內核提供的性能事件接口。我通過perf_event_open系統調用成功地獲取了參數(cpu cycles,...)。 long
perf_event_open(struct perf_event_attr *hw_event, pid_t pid,
int cpu, int group_fd, unsigned long flag
考慮下面的C碼(x86_64的) #include <unistd.h>
int main()
{
execve("/bin/ls", 0, 0);
}
予編譯爲gcc a.c和執行;我得到了SIGABRT錯誤 A NULL argv[0] was passed through an exec system call.
Aborted
下一頁上gdb下運行,起初我也得到了
我特別尋找C11標準(ISO/IEC 9899:2011)或POSIX頁面中的單詞。我檢查了POSIX manual for fwrite,但它沒有提及未定義的行爲。然而,manual for fclose不說, ,來電後FCLOSE(),不確定的行爲的任何使用流導致的。 但我仍然看不到NULL流是否會導致UB。