内核态下 如何从文本文档中一行一行获取数据
之前是将文本文档中的数据一次性读入字符串中,如何整行获取数据呢?
------解决方案--------------------每次遇到换行符,就处理呗。
然后读入下一行。
------解决方案--------------------fgets
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------一般来说是不推荐在内核里面直接操作文件。
操作文件在用户程序做比较好吧,
你是用来做什么的,可以考虑变通一下吧
------解决方案--------------------
------解决方案--------------------再复杂的东西也是人写出来的,你理解fgets的机制自己用内核io实现一套就是了。
给fd外边套个FILE,FILE里带上个buffer。
每次fgets调用,如果buffer里还有bytes,那么直接写到用户buffer,如果没找到\n那么再read一堆bytes进buffer,继续向用户buffer写,如果用户buffer写满就停下不找\n了,直接写上\0返回。 如果找到\n了,那么立即写上\0返回。
fgets的实现你没看过么? 不就是为了减少系统调用次数么, 你希望读一行, 那么我们就读上1000B,然后去里边找\n返回给用户一行,不就是这样么。