<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式系統(tǒng)中進(jìn)程間通信的監(jiān)視方法

          嵌入式系統(tǒng)中進(jìn)程間通信的監(jiān)視方法

          作者: 時(shí)間:2016-10-08 來源:網(wǎng)絡(luò) 收藏
                         #include sys/ptrace.h>
                         #include sys/wait.h>
                         #include linux/user.h>
                         #include sys/socket.h>
                         #include sys/un.h>
                         #include linux/net.h>

          為了在程序中使用 ptrace 系統(tǒng)調(diào)用,我們需要增加 ptrace.h 頭文件。為了能夠獲得截獲的系統(tǒng)調(diào)用的函數(shù)入?yún)?,我們需要使?struct user_regs_struct 結(jié)構(gòu)。它在 user.h 中被定義。由于在程序中使用了信號,因此,我們也需要 wait.h 。我們要監(jiān)視通信動作, socket.h 和 un.h 則是必不可少的。

          本文引用地址:http://www.ex-cimer.com/article/201610/305865.htm

          下面是程序的入口主函數(shù):

                  int main (int argc, char *argv[])
                  {
                      int status;
                      int syscall_entry = 0;
                      int traced_process;
                      struct user_regs_struct u_in;

          status 用于記錄被監(jiān)視進(jìn)程的狀態(tài)變化; syscall_entry 記錄被監(jiān)視進(jìn)程當(dāng)前是進(jìn)入系統(tǒng)調(diào)用,還是從系統(tǒng)調(diào)用中返回; u_in 用來獲得截獲的系統(tǒng)調(diào)用的參數(shù); traced_process 則是被監(jiān)視進(jìn)程的 PID 值。

                       traced_process = atoi(argv[1]); /* 從命令行得到監(jiān)視進(jìn)程的PID */
                       ptrace(PTRACE_ATTACH, traced_process, NULL, NULL);                           
          				
                      
                          
          			
          							

          關(guān)鍵詞:

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();