Chinaunix
标题:
在分析strace输出的时候,发现有很多系统调用,其中有函数read
[打印本页]
作者:
行走的小布鞋
时间:
2015-02-27 10:40
标题:
在分析strace输出的时候,发现有很多系统调用,其中有函数read
大家好,小弟请教一个问题
在分析strace输出的时候,发现有很多系统调用,其中有函数read
read(4, "\v", 1) = 1
read(4, "\n", 1) = 1
read(4, "\f", 1) = 1
这个函数传递的参数不一样,v,n,f
第一和第三个参数的含义,我都明白,但是第二个参数啥意思,搞不懂,请大侠指点下。
我百度read,但是没有任何结果。
或者哪位大侠告诉我哪里可以查到linux所有系统函数的文档
我的linux系统是centos 6.3
作者:
Tinnal
时间:
2015-02-28 00:21
回复
1#
行走的小布鞋
第二个参数就是读出来的内容罗。你不是要每次读一个字节吗。
因为是字符串,strace帮你把内容给打印出来了。
作者:
行走的小布鞋
时间:
2015-02-28 10:09
读出来的字符串,怎么可能都是\n,\f之类的呢?
回复
2#
Tinnal
作者:
Tinnal
时间:
2015-02-28 22:01
回复
3#
行走的小布鞋
这是转义字符。/n代表回车 /f是换页。
请看
http://baike.baidu.com/link?url= ... 402Fa_Ltzm4_H9bqEwK
作者:
爻易
时间:
2015-03-01 09:12
root#echo 中国 > 测试
root#strace cat 测试
...
read(3, "\344\270\255\345\233\275\n", 3276
= 7
write(1, "\344\270\255\345\233\275\n", 7中国
) = 7
...
作者:
行走的小布鞋
时间:
2015-03-03 14:43
谢谢亲
回复
2#
Tinnal
作者:
shihyu
时间:
2015-03-07 02:37
本帖最后由 shihyu 于 2015-03-07 02:38 编辑
我也想问类似问题
strace echo "Hello" 2>&1 | grep -E 'read|write'
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\37\2\0\0\0\0\0"..., 832) = 832
write(1, "Hello\n", 6Hello
请问一下 "read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\37\2\0\0\0\0\0"..., 832) = 832" 这行是代表什么?
谢谢
作者:
nswcfd
时间:
2015-03-12 12:16
就算echo "hello"内部简单到只有一句write(1, "hello", 6),任何elf文件的执行在进入main之前有一大段初始化工作,
这个read工作在fd=3上,你可以看看最近的一个open=3是打开哪个文件。
我试了一下
open("/lib64/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\355\241\245:\0\0\0"..., 832) = 832
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2