如何打印一个文本文件的内容STDOUT在Linux汇编语言使用c库函数?

2022-01-27 22:06:30 标签 linuxassemblyx86libc

首先,我尝试用fopen函数打开一个文件,并使用fprint函数打印文件的内容,但它只是打印一堆符号到终端。

过了一段时间,我意识到它不把指向流的指针作为参数,上面提到的行为是预期的。它在打印实际的指针值。putc或puts函数似乎也没有将指向文件I/O流的指针作为参数。

我现在最好的猜测是,我必须访问以某种方式创建的缓冲区fopen函数!但我不知道如何实现,也不知道是否可能实现。总而言之,我现在完全被困住了。

这里的最终目标是获取来自STDIN和/或文件的输入,对文本进行一些处理(例如:小写到大写),并将结果输出到STDOUT和/或文件。我想,如果我能得到上述问题的答案,那么它应该有助于最终目标,也许。

PS:如果这个问题可以在任何方面得到改善,请告诉我。谢谢你!

也许下面的代码将有助于更好地理解我想说的内容。

.section .data
o_rdonly:
    .ascii "r"
content:
    .ascii "Content of the file: %d\n"  #This is how I figured what those random symbols were.
.section .bss
.lcomm buffer, 10
.section .text
.globl _start
_start:
    movl %esp, %ebp
    pushl $o_rdonly
    pushl 8(%ebp)
    call fopen
    ##Print the content of the file?##
    #pushl %eax #
    #call printf    #It just prints the actual address of the File I/O pointer.
    pushl $0
    call exit

###你需要先从文件中读取使用fread or fgets or some other function and或fgets or 或者其他函数,然后把你读到的写进标准输出。没有直接打印一个文件的内容的快捷方式。

阅读全文

▼ 版权说明

相关文章也很精彩
推荐内容
更多标签
相关热门
全站排行
随便看看

错说 cuoshuo.com —— 程序员的报错记录

部分内容根据CC版权协议转载;网站内容仅供参考,生产环境使用务必查阅官方文档

辽ICP备19011660号-5

×

扫码关注公众号:职场神器
发送: 1
获取永久解锁本站全部文章的验证码