我想从中提取信息/proc/pid/maps
,例如:起始地址、结束地址和权限。
但是,出于学习目的,我想使用低级系统调用,例如:open
、、read
和lseek
。
我很困惑如何 grep 我需要的信息。我发现了一些挑战:
- 如何使用读取整个文件
read()
?
现在,我正在使用while((n = read(fd, buf, BUFSIZ)) > 0)
, 来读取文件,但显然它是分批读取,增加BUFSIZ
* 2,并不能解决问题。
- 我试图 grep 起始地址,逐个读取字符,直到找到
-
分隔符,然后lseek
到行中的第一个字符并用于read
获取起始地址。它在第一次迭代时工作正常,但在while((n = read(fd, buf, BUFSIZ)) > 0)
.
提取信息的最佳方法是什么?