Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

linuxÇý¶¯ ×ÔÐýËøµÄÔËÓÃ


linuxÇý¶¯ ×ÔÐýËøµÄÔËÓÃ
//hello.c
#define __NO_VERSION__
#include <linux/module.h>
#include <linux/config.h>
#include <linux/version.h>
#include <asm/uaccess.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/sched.h>
#include <linux/mm.h>
#include <asm/page.h>
#include <linux/poll.h>
#include <linux/kdev_t.h>
#include <asm/semaphore.h>
#include <linux/slab.h>
#include <linux/delay.h>
#include <asm/uaccess.h>
#include <asm/irq.h>
#include <linux/interrupt.h>
#include <linux/spinlock.h>
unsigned int test_major = 0;
static int global_var=0;
static int globalvar_count = 0;
char *mystr="wodeshen" ;
static struct semaphore sem;
static spinlock_t spin = SPIN_LOCK_UNLOCKED; //ºê¶¨Òå ÒѾ­³õʼ»¯
static ssize_t read_test(struct file *file,char *buf,size_t count,loff_t *f_pos)
{
int left;
printk(KERN_INFO "read_test\n");
if (verify_area(VERIFY_WRITE,buf,count) == -EFAULT )
return -EFAULT;
if (down_interruptible(&sem))
{
return - ERESTARTSYS;
}
printk("copy_to_user======2=======\n");
copy_to_user(buf, mystr, strlen(mystr));
/*
for(left = count ; left > 0 ; left--)
{
__put_user('1',buf);
buf++;
}
*/
up(&sem);
//return sizeof(int);
return  strlen(mystr);
}
static ssize_t write_test(struct file *file, const char *buf, size_t count, loff_t *f_pos)
{
if (down_interruptible(&sem))
{
return - ERESTARTSYS;
}
if (copy_from_user(&global_var, buf, sizeof(int)))
{
up(&sem);
return - EFAULT;
}
up(&sem);
printk(KERN_INFO "write_test\n");
return sizeof(int);
}
static int open_test(struct inode *inode,struct file *file )
{
spin_lock(&spin);
printk("globalvar open\n");
//ÁÙ½ç×ÊÔ´·ÃÎÊ
if (globalvar_count)
{
spin_unlock(&spin);
return - EBUSY;
}
globalvar_count++;
//ÊÍ·Å×Ô


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì (Æß) SDPЭÒé

Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖЭÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀЭÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......

linuxÏÂtopÃüÁî²ÎÊý½âÊÍ

 topÃüÁîÊÇLinuxϳ£ÓõÄÐÔÄÜ·ÖÎö¹¤¾ß£¬Äܹ»ÊµÊ±ÏÔʾϵͳÖи÷¸ö½ø³ÌµÄ×ÊÔ´Õ¼ÓÃ×´¿ö£¬ÀàËÆÓÚWindowsµÄÈÎÎñ¹ÜÀíÆ÷¡£ÏÂÃæÏêϸ½éÉÜËüµÄʹÓ÷½·¨¡£
top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48
Tasks: 29 total,   1 running, 28 sleeping,   0 stopped,   0 zombie ......

ÔÚlinuxÉÏsilent°²×°oracle¼òÖ±ÊÇÒ»³¡Ø¬ÃÎ

 Parsing command line arguments:
    Parameter "silent" = true
java.lang.ArrayIndexOutOfBoundsException: 2
        at oracle.net.ca.CmdlineArgs.parseArgs(Unknown Source)
        at oracle.net.ca.I ......

linux×Ö·ûÉ豸Çý¶¯Ñ§Ï°

 ½ñÌìѧϰÁËÔÚlinux2.6ƽ̨Ï嵀 char drvier £¬ÔÚlinuxÏÂÍÆ¼öʹÓõÄÊÇcdev½á¹¹ÌåÀ´ÊµÏÖ¶ÔcharacterÉ豸µÄÃèÊö£¬´úÂëÈçÏÂ
/*This module is desired for sunplusapp s3c2440_board */
#include <linux/fs.h>
#include <linux/types.h>
#include <linux/cdev.h>
#include <linux/kernel.h> ......

¡¾×ª¡¿LinuxµÄͼÐλ¯×ÀÃæ¹ÜÀí¡úĿ¼¹ÜÀíµÄ»ù´¡ÖªÊ¶

 ÔÚLinuxϵͳÉÏÃüÃûĿ¼µÄ·½Ê½ÊÇÏ൱ÒþÃØµÄ£¬ÕâҪ׷Ëݵ½µçÄÔÓ²¼þ´¦ÀíÄÜÁ¦±È½ÏÈõ¶ø¼Û¸ñÓֱȽϹóµÄʱÆÚ¡£ÔÚLinuxϵͳÉÏÃüÃûĿ¼µÄ·½Ê½ËƺõÓе㱿׾£¬µ«ÓëÆäËûµÄÿ¼þÊÂÇéÒ»Ñù£¬ÕâÖ»Ð軨һЩʱ¼ä¼ÓÒÔϰ¹ß¡£Í¨¹ýÃèÊöLinuxÎļþϵͳµÄÈ«¾°£¬Ê¹¶ÁÕß¿ÉÒÔ¶ÔLinuxµÄÎļþϵͳÓнÏÇå³þµÄÈÏʶ¡£
¸ùĿ¼(/)
¡¡¡¡Ä¿Â¼½á¹¹ÉϵÄ×î¸ßµã± ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ