systems-programming

    0熱度

    2回答

    我已經編寫了一個代碼,可以將任何輸入整數轉換爲均衡LED顯示。我想將我的系統時間作爲輸入傳遞給此功能,並獲得相同的LED顯示。 實施例: 考慮以下2個輸入端: (system time = 10:12:00) (system time = 11:10:04) 問題: 屏幕輸出應與 「11時10分04秒」 覆蓋先前的輸出爲 「十點12分00秒」 這樣的應用程序用戶應該感受到「Inplace」動

    4熱度

    2回答

    在我的E8200盒子上,這不會發生,但在我的Atom N450上網本(都運行OpenSuse 11.2)時,無論何時讀取CPU的TSC,返回的值是mod 10 == 0,i。即這是一個沒有剩餘的10整除我使用的是用於測量倍的代碼有趣的作品取RDTSC價值,但對於演示的目的,我已經決定了這個小程序: .text .global _start _start: xorl %ebx,%e

    1熱度

    1回答

    我在Linux中執行動態二進制分析。 鑑於程序是動態鏈接(加載時間鏈接)和沒有地址空間隨機化我必須解決函數名稱,如果標準庫函數被調用。我在反彙編代碼中看到,調用標準庫例程的第一個分支到.plt節中的某個地址,在該節中,計算機正在裝載內存地址。順便說一句,它是在ARM Linux中,但一般的想法將相同,我想。 我是系統編程新手。我不太瞭解如何鏈接庫以及在運行時解決地址問題。任何想法從專家讚賞。

    1熱度

    1回答

    我有兩套代碼都試圖執行類似ls|grep pip 一個工作,一個不。 工作代碼創建2個子進程,每個子進程使用一個子進程來執行一個命令,另一個只是通過創建一個子進程來執行此操作。 I.e執行ls說父子中的孩子和grep。這似乎並不奏效。我似乎也得不到任何錯誤。 有人能告訴我問題是什麼嗎?爲什麼它存在? 不工作: void runpipe() { pid_t childpid;

    2熱度

    1回答

    我正在學習linux系統編程,O'reilly。它說:「一個常見的錯誤是將緩衝區聲明爲在關閉流之前結束的範圍內的自動變量。特別是,注意不要提供main()本地緩衝區,然後不能顯式關閉流。 「 那麼它顯示了一個bug的代碼示例: #include <stdio.h> int main() { char buf[BUFSIZ]; /*set stdin to block-bu

    -1熱度

    1回答

    我試圖通過tcp套接字連接發送212 KByte的緩衝區 但是作爲響應,我正在通過對等錯誤接收RST數據包和連接重置。 我已將SO_RCVBUF和SO_SBNBUF屬性更改爲256 KB,並且已驗證max_buf系統屬性也> 256 K. 仍然當我嘗試發送大量數據時,連接失敗。 我是socket編程的新手,所以請讓我知道是否需要更多的信息。 我想我錯過了一些套接字選項。 鋨:Solaris SPA

    3熱度

    1回答

    我有一個庫,它爲SIGSEGV安裝一個信號處理程序用於調試目的。 SIGSEGV處理程序只是輸出一些信息,然後退出程序。 最近,我需要從Java調用這個庫(使用JNI),而我遇到的問題是JVM還爲SIGSEGV安裝了一個信號處理程序,以實現比我更有用的目的。 所以我想要選擇的行動是,如果我的圖書館發現信號處理程序已經安裝了一個信號,它根本不會安裝任何信號。 爲了清楚起見,我使用了sigaction

    0熱度

    2回答

    可能重複: NASM 16bit Intel 我正在彙編代碼用於微處理器過程簡單的微處理器。我正在編寫一個程序:將從地址300開始存儲在內存中的六個元素相加,但忽略80個十六進制或更高(>=80h)或20十六進制或更低(<=20h)的內容。在6次比較之後,程序應該停止,甚至數字被添加。 這裏是我的代碼: E 300 30 40 50 60 70 75 A 100 100:MOV AX,

    4熱度

    3回答

    我不是新手,在編程時使用信號。我主要工作在C/C++和Python。 但我很想知道如何在Linux(或Windows)中實際實現信號。 如果有任何已註冊的信號需要處理,操作系統是否會檢查信號描述符表中的每條CPU指令?或者是流程管理者/調度員對此負責? 由於信號是異步的,CPU指令在完成之前是否中斷?

    0熱度

    1回答

    我試圖讀取繼承進程中的文件,我通過命令行傳遞的文件句柄有效,但GetFileSize(HANDLE,LPDWORD)返回0。 #include"mainClass.h" MainClass* MainClass::ptr = NULL; MainClass::MainClass() { ptr = this; } BOOL CALLBACK MainClass::DlgPr