2013-09-23 34 views
1

好的,所以我正在爲我的班級編寫一個C程序,但我只允許使用系統調用。基本上我們的程序使我們的cp命令成爲可能,我們從命令行輸入兩個文件作爲輸入,複製第一個文件並將其放入第二個文件。這是相對簡單的,我的代碼大部分都是正確的或者只是一些小的修復。然而,程序的一部分是如果目標文件已經退出,我們需要提示用戶詢問它是否應該被覆蓋,所以我需要知道如何使用系統調用函數來獲取用戶輸入,也就是說我可以不使用scanf,fgets,gets等。我可以從標準庫中使用的唯一函數是printf。所以我需要知道系統調用函數是獲取用戶提示。這部分代碼假設像cp -i一樣工作,如果這有助於任何人。先謝謝你。系統調用提示和獲取用戶輸入的函數

回答

0

您可以使用系統調用read。從標準輸入讀取,fd(文件描述符)爲0

$ man read

READ(2)

的Linux程序員手冊(2)

NAME

read - read from a file descriptor 

內容簡介

#include <unistd.h> 

    ssize_t read(int fd, void *buf, size_t count); 

說明

read() attempts to read up to count bytes from file descriptor fd into the buffer starting at buf. 

    If count is zero, read() returns zero and has no other results. If count is greater than SSIZE_MAX, the result is unspecified.