将 int 传递给 sysfs

Passing int to sysfs

我想将 int 传递给 sysfs_store

我试过的

用户空间

int tid = 5234; // can be negative as well
char buf[5];
sprintf(buf, "%d\n", tid);
write (fd, buf, 1);

driver sysfs_store

int v;
kstrtoint(buf,10,&v);
pr_info("%d\n",v); // printing only first digit 5. Should print 5234

sprintf() returns 字节复制计数;使用它

也切换到 snprintf() 以避免缓冲区溢出。

int data_len = snprintf(buf, sizeof(buf), "%d\n", tid);
write (fd, buf, data_len);

最好有更大的缓冲区来涵盖您的所有场景。