int main()
{
char buffer1[20]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
char buffer2[20]={0};
int sculltest;
int code,i;
sculltest = open("/dev/scull",O_WRONLY );
for ( i=20 ; i>0 ; i-=code) {
if ((code=write(sculltest , &buffer1[20-i] , i)) != i) printf("write error! code=%d \n",code);
else printf("write ok! code=%d \n",code);
}
close(sculltest); //这里为什么不是release(sculltest)
struct file_operations scull_fops = {
.owner = THIS_MODULE,
.read = scull_read,
.write = scull_write,
.open = scull_open,
.release = scull_release //似乎没有定义close()
}; |