用C编写系统调用,如何将整数值打印到文件中

时间:2014-03-12 16:57:52

标签: c file integer system-calls

我想把一个变量写入一个文件,但是我一直遇到语法错误,或者它没有将它打印到文件中。

我有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;
}

3 个答案:

答案 0 :(得分:1)

你的语法错了。类型:

man -s 3 write

从命令行。


修改:当问题更新为使用正确的语法时,答案不再有意义。

答案 1 :(得分:0)

您希望系统按您的需要运行。即只是希望功能存在,因为它们是有用的。没有接受文件名的写入功能。没有写函数接受printf格式字符串作为其第二个参数。

你需要

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

在您添加打开的编辑后,您仍然希望存在不存在的函数(写入采用printf)。如果你想写成字符串,你必须自己转换它,如果你不能使用itoa或xprintf

答案 2 :(得分:0)

您的edit2显示您几乎可以使用它。混合一点

char digit = n%10
在循环中

你将完成。您是否希望我们实际上只为您编写代码。它真的是cs101级别的东西