簡體   English   中英

Linux中的信號處理(CentOS)C

[英]Signal handling in Linux (CentOS) C

我是操作系統的新手,在C ++中最為舒服,但是我試圖填補我的知識空白並習慣C語法。

我一直遇到一些我不知道如何解釋的語法,它的形式如下:

void(* sa_sigaction)(int sig,siginfo_t * si,void * ctx)

有三件事令我困惑:

  1. sa_sigaction是一個指針嗎? 我假設它是函數名稱。 它也可以是指針嗎?

  2. 為什么sa_sigaction在括號中? 這有任何語法相關性嗎?

  3. 'void ctx'是一個無效指針? (這對我來說是這樣的,但我不明白為什么無效指針會成為一個參數)。

我真的希望我不是在問一個愚蠢的問題 - 如果我請指出我正確的方向閱讀一些閱讀材料,我不知道我需要用C語言開始閱讀哪個主題。

我的3個解釋是否正確的答案將非常感謝:)

非常感謝和編碼愉快

1)是的,它既是指針又是函數。

2)是的,這是聲明函數指針的語法。

3)是的,這是一個無效指針。 它們對於傳遞沒有類型的內存地址非常有用。

就像@ user2485710建議的那樣,查看關於函數指針的本教程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM