“LDD3,第3章”告诉我们,我们可以在运行时分配struct cdev
结构,如下所示:
struct cdev *cdev_ptr = cdev_alloc();
但是我不知道如何释放这个内存,因为cdev_del()
似乎没有释放kzmalloc()
中cdev_alloc()
分配的内存。
答案 0 :(得分:2)
呼叫RAW_LOG_DIR=/var/cache/logs/recent_log.txt
OUTPUT_DIR=/var/cache/logs/output
for LOG in $RAW_LOG_DIR; do
zcat -f ${RAW_LOG_DIR} | head -n5 > OUTPUT_DIR
done
将免费cdev_del()
由cdev
创建,自动。
根据implementation,cdev_alloc()
注册内部kobject的特殊回调。当对象的引用计数降为零并且它释放分配的内存时,将调用此回调。
/ **
* cdev_del() - 从系统中删除cdev
* @p:要删除的cdev结构
*
* cdev_del()从系统中删除@p,可能释放结构
* 本身。
* /