求教用C语言在linux下用inode直接遍历文件的方法

我知道可以用opendir、readdir来遍历文件夹,但是这两者是依据路径名字符串来实现遍历,而且还需要做字符串拼接才行,感觉这样很笨,在递归很深的文件夹时还有栈溢出的可能。
考虑到linux内核是用inode号而非文件名来标识文件,通过stat函数也能读到inode号,那么有没有办法是用inode号来操作文件的呢?

https://blog.csdn.net/joel_lv/article/details/3392233