首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C-如何使用系统调用打印整数?

C-如何使用系统调用打印整数?
EN

Stack Overflow用户
提问于 2018-06-08 17:02:46
回答 1查看 2.1K关注 0票数 -3

对于我的项目,我必须打印一个整数值,而不使用函数库(例如:itoasprintfprintf、fprintf、fwrite等),但我只能使用系统调用write()

EN

回答 1

Stack Overflow用户

发布于 2018-06-08 17:12:59

您希望在不使用printffwrite等库函数的情况下打印一个整数。您可以使用write()系统调用。打开write的手册页面。上面写着

write()将从buf开始的缓冲区中的字节数写入文件描述符fd所引用的文件。

ssize_t write(int fd, const void *buf, size_tcount);

例如,用于

代码语言:javascript
复制
int num = 1234;
write(STDOUT_FILENO,&num,sizeof(num));

代码语言:javascript
复制
write(1,&num,sizeof(num)); /* stdout --> 1  */

上面的write()系统调用会将num写入stdout流。

编辑:-如果你的输入是integer,你想把它转换成字符串并打印出来,但是不想使用像itoa()sprintf() & printf()这样的库函数。为此,您需要实现用户定义的sprintf(),然后使用write()

代码语言:javascript
复制
int main(void) {
        int  num = 1234; 
        /* its an integer, you need to convert the given integer into
        string first, but you can't use sprintf()
        so impliment your own look like sprintf() */

        /*let say you have implimented itoa() or sprintf()
        and new_arr containg string 1234 i,e "1234"*/

        /* now write new_arr into stdout by calling write() system call */  
        write(1,new_arr,strlen(new_arr)+1);
        return 0;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50757018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档