system-calls

    2熱度

    3回答

    我正在使用系統調用,如果它失敗,我需要爲不同的errnos做不同的事情。 我需要編寫的代碼看起來是這樣的: int res; res = systemCall(); if (res == -1) { if (errno == ENOMSG) { doSomething(); } else { doSomethingEl

    0熱度

    2回答

    我在Python版本2.7.10中使用了macOS Sierra 10.12.16和Xcode 8.3.3。 我想從Python調用latex。 os.system('latex myFile.tex')不起作用,因爲需要完整路徑。所以我試圖通過編程命令獲得的路徑。 import os import subprocess batcmd = '/usr/bin/which latex' th

    -1熱度

    3回答

    我正在構建一個32位操作系統的程序集。 我已經安裝了IDT,並通過int指令處理程序interruptus。 如何啓用syscall和sysenter指令,以及如何處理它們/返回? 確實syscall指令在英特爾處理器32位中不受支持,因此我無法使用它? 是不是說sysret指令不安全? 做某處存在一個教程嗎? 編輯:我的主要問題是如何啓用syscall和sysenter說明! (沒有重複)

    1熱度

    1回答

    我正在執行一個內核模塊,在插入後編輯whoami命令,我用Makefile編譯它的內容如下: obj-m+=holamundo.o obj-m+=acumulador.o obj-m+=cliente.o obj-m+=intercept.o all: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

    1熱度

    1回答

    ers: 有一個問題困擾我。據我所知,有兩種方法可以在Linux中調用write()。像這樣: 代碼1: write(DEV, buf, count); 代碼2: int write_total = 0; while (write_total < count) { int len = write(DEV, buf, count); write_total += len;

    0熱度

    2回答

    我讀到APUE 3rd,8.13,系統功能,我就看見一個版本的系統功能,實現無信號handling.Code是象下面這樣: #include <sys/wait.h> #include <errno.h> #include <unistd.h> int system(const char *cmdstring) /* version without signal handling */

    -2熱度

    1回答

    我正在閱讀二進制文件並將數據添加到RB樹。在我的文件中,前四個字節是一個IP地址,接下來的四個字節是一個數字,接下來的x個字節是一個由空字符終止的字符串。我知道我應該讀取緩衝量的字節,然後處理它,但是這是針對我們正在逐步設計的項目(以便下一步)。所以目前我正在做的是一次讀取一個字節並處理它,直到我讀取一個空字符。 這裏是我的代碼的相關部分看起來像: int fd, i, check, numNam

    0熱度

    1回答

    我有兩個方案假設prog_1和prog_2。 prog_1使用fork()和exec()一起在其執行過程中調用prog_2。它將main()函數作爲char *argv[]數組傳遞給prog_2函數。 prog_2成功接收這些參數。 什麼其實我想要的是,一些結構傳遞給prog_2和不是通過prog_2寫一個文件,並返回一些字符串,如「成功完成」。因爲我使用exec()所以我知道我不能返回任何字符串

    1熱度

    1回答

    我的主程序正在創建多個寫入stdout的子項。爲了避免它們寫在彼此,我使用的sprintf寫入組合,就像這樣: sprintf(buf, "Bubble Sort Process Started\n"); write(0, &buf, strlen(buf)); 當我試圖打印出一個int數組我遇到一個問題。每次程序運行時,數組的大小都會發生變化,所以我不能讓一組sprintf一次打印所有內容

    0熱度

    1回答

    我試過使用下面的(Will wait and waitpid block SIGCHLD and unblock it when they return in Linux?)來回答我的問題。鏈接的解決方案讓我瞭解下面的內容。那麼爲什麼它錯了? 考慮以下幾點: 的處理器 void sig_child(int sig) { signal(SIGCHLD, sig_child); if (sig