2014-03-12 26 views
0

我正在寫一個變量到一個文件,但我不斷收到語法錯誤,或者它不會將它打印到文件中。在C中編寫系統調用,如何將整數值打印到文件

我有info.uptime,我想打印到文件「file.txt」,所以我嘗試:

int fd = open("file.txt", O_WRONLY); 
write(fd, info.uptime, length(info.uptime)); 

長度溫控功能是我創建看到號碼長度功能。 在文件中的數字都沒有了,所以我嘗試:

int fd = open("file.txt", O_WRONLY); 
write(fd,("%lu" ,info.uptime), length(info.uptime)); 

現在,它給了我語法錯誤的參數太多。 我該怎麼做?

這是在Ubuntu

編輯:我只能用:

#include <unistd.h> 
#include <sys/sysinfo.h> 
#include <sys/syscall.h> 
#include "helper.h" 

EDIT2:

int length(int n) 
{ 
     int i; 
    for (i=0;n>=1;i++) 
    { 
     n = n/10; 
    } 
    return i; 
} 
+0

你第一次去可能工作,但寫的數據爲二進制。我們不知道「長度」是如何工作的,所以不可能說它是否真的起作用。 – pm100

+0

注意:對於'length(0)',建議'for(i = 0; n> = 0; i ++)'。 – chux

回答

1

你的語法是錯誤的。類型:

man -s 3 write 

從命令行。


編輯:答案不再是有意義的,因爲問題被更新爲使用正確的語法。

+0

'沒有用於寫入的手動輸入' – user2410243

+0

什麼是正確的語法比? – user2410243

+0

apt-get install man – Claris

0

您希望系統按照您的要求工作。即只是希望功能存在,因爲它們很有用。沒有接受文件名的寫入功能。沒有寫函數接受printf格式字符串作爲其第二個參數。

你需要

fopen(<name>) 
fprintf(...) 
fclose 

你的編輯後加入開放你仍然希望成不存在(即寫入具有printf)存在的功能。如果你想寫成字符串,你將不得不自己轉換,如果你不能使用itoa或xprintf

+0

對不起,閱讀編輯 – user2410243

0

你的edit2顯示你幾乎有它的工作。混合在一點

char digit = n%10 

在循環中,你就完成了。你是否希望我們只爲你寫代碼?它真的cs101級的東西

相關問題