ÉîÈëdz³ö LinuxÉ豸Çý¶¯×èÈûÓë·Ç×èÈû (select poll)
×èÈû²Ù×÷ÊÇÖ¸£¬ÔÚÖ´ÐÐÉ豸²Ù×÷ʱ£¬Èô²»ÄÜ»ñµÃ×ÊÔ´£¬Ôò½ø³Ì¹ÒÆðÖ±µ½Âú×ã¿É²Ù×÷µÄÌõ¼þÔÙ½øÐвÙ×÷¡£·Ç×èÈû²Ù×÷µÄ½ø³ÌÔÚ²»ÄܽøÐÐÉ豸²Ù×÷ʱ£¬²¢²»¹ÒÆð¡£±»¹ÒÆðµÄ½ø³Ì½øÈësleep״̬£¬±»´Óµ÷¶ÈÆ÷µÄÔËÐжÓÁÐÒÆ×ߣ¬Ö±µ½µÈ´ýµÄÌõ¼þ±»Âú×ã¡£
ÔÚLinuxÇý¶¯³ÌÐòÖУ¬ÎÒÃÇ¿ÉÒÔʹÓõȴý¶ÓÁУ¨wait queue£©À´ÊµÏÖ×èÈû²Ù×÷¡£wait queueºÜÔç¾Í×÷Ϊһ¸ö»ù±¾µÄ¹¦Äܵ¥Î»³öÏÖÔÚLinuxÄÚºËÀïÁË£¬ËüÒÔ¶ÓÁÐΪ»ù´¡Êý¾Ý½á¹¹£¬Óë½ø³Ìµ÷¶È»úÖÆ½ôÃܽáºÏ£¬Äܹ»ÓÃÓÚʵÏÖºËÐĵÄÒ첽ʼþ֪ͨ»úÖÆ¡£µÈ´ý¶ÓÁпÉÒÔÓÃÀ´Í¬²½¶Ôϵͳ×ÊÔ´µÄ·ÃÎÊ£¬ÉϽÚÖÐËù½²ÊöLinuxÐźÅÁ¿ÔÚÄÚºËÖÐÒ²ÊÇÓɵȴý¶ÓÁÐÀ´ÊµÏֵġ£
ÏÂÃæÎÒÃÇÖØÐ¶¨ÒåÉ豸"globalvar"£¬Ëü¿ÉÒÔ±»¶à¸ö½ø³Ì´ò¿ª£¬µ«ÊÇÿ´ÎÖ»Óе±Ò»¸ö½ø³ÌдÈëÁËÒ»¸öÊý¾ÝÖ®ºó±¾½ø³Ì»òÆäËü½ø³Ì²Å¿ÉÒÔ¶ÁÈ¡¸ÃÊý¾Ý£¬·ñÔòÒ»Ö±×èÈû¡£
#include <linux/module.h>
#include <linux/init.h>
#include <linux/fs.h>
#include <asm/uaccess.h>
#include <linux/wait.h>
#include <asm/semaphore.h>
MODULE_LICENSE("GPL");
#define MAJOR_NUM 254
static ssize_t globalvar_read(struct file *, char *, size_t, loff_t*);
static ssize_t globalvar_write(struct file *, const char *, size_t, loff_t*);
struct file_operations globalvar_fops =
{
¡¡read: globalvar_read,
write: globalvar_write,
};
static int global_var = 0;
static struct semaphore sem;
static wait_queue_head_t outq;
static int flag = 0;
static int __init globalvar_init(void)
{
¡¡int ret;
¡¡ret = register_chrdev(MAJOR_NUM, "globalvar", &globalvar_fops);
¡¡if (ret)
¡¡{
¡¡¡¡printk("globalvar register failure");
¡¡}
¡¡else
¡¡{
¡¡¡¡printk("globalvar register success");
¡¡¡¡init_MUTEX(&sem);
¡¡¡¡init_waitqueue_head(&outq);
¡¡}
¡¡return ret;
}
static void __exit globalvar_exit(void)
{
¡¡int ret;
¡¡ret = unregister_chrdev(MAJOR_NUM, "globalvar");
¡¡if (ret)
¡¡{
¡¡¡¡printk("globalvar unregister failure");
¡¡}
¡¡else
¡¡{
¡¡¡¡printk("globalvar unregister success");
¡¡}
}
static ssize_t globalvar_read(struct file *filp, char *buf, size_t len, loff_t *off)
{
¡¡//µÈ´ýÊý¾Ý¿É»ñµÃ
¡¡if (wait_event_interruptible(outq, flag
Ïà¹ØÎĵµ£º
×¼±¸¹¤×÷:
¡¡¡¡Óõ½µÄperl À©Õ¹×é¼þ(modules)ÔÚÉÏÆªÌù³ö.( win32::odbc Ä£¿é
)ÏÂÔØ×é¼þºó°´ÕÕReadmeÎļþ°²×°µ¹ÏìӦĿ¼.ÅäÖúÃÏàÓ¦µÄodbcÊý¾ÝÔ´.
¡¡¡¡
¡¡¡¡³ÌÐòʵÏÖ:
¡¡¡¡Ê¹ÓÃ
¡¡¡¡use
Win32::ODBC;
¡¡¡¡
¡¡¡¡Óï¾ä°üº¬Ó¦Ê¹ÓõÄÄ£¿éÊÇwin32::odbc,д³öÊý¾Ý¿â
Á¬½Ó×Ö·û´®
¡¡¡¡
¡¡¡¡$DSN = "DSN =
My DSN ......
ÓÐʱºòÔÚ³ÌÐòÀïÃæÐèÒª´ò¿ª¶à¸öÎļþ£¬½øÐзÖÎö£¬ÏµÍ³Ò»°ãĬÈÏÊýÁ¿ÊÇ1024£¬£¨ÓÃulimit -a¿ÉÒÔ¿´µ½£©¶ÔÓÚÕý³£Ê¹ÓÃÊǹ»ÁË£¬µ«ÊǶÔÓÚ³ÌÐòÀ´½²£¬¾ÍÌ«ÉÙÁË¡£
Ð޸İ취£º
ÖØÆô¾ÍOK
ÐÞ¸Ä2¸öÎļþ¡£
1./etc/security/limits.conf
vi /etc/security/limits.conf
¼ÓÉÏ£º
* soft nofile 8192
* hard nofile 20480
2./etc/pam.d/l ......
Õâ´Îתµ½Á˺½¿ÕµÄÒ»¸öÏîÄ¿£¬ÐèÒªÔÚLinuxÏÂÓÃC×ö¿ª·¢¡£°æ±¾¹ÜÀí²ÉÓÃSVN£¬´Ó×òÌìÏÂÎ翪ʼÎҾͿªÊ¼Á˰²×°£¬ÕæµÄÊÇÍ´¿àµÄ¹ý³Ì¡£ÏÖÔÚµ¹Êǰ²×°ºÃÁË£¬µ«ÊÇÅäÖÃÃüÁûÓÐÕÆÎÕ¡£
Èç¹ûÓÐȨÏÞ´ÓÍøÉÏÖ±½Ó¸üÐÂÈí¼þ£¬ÎÒ²»±ØÃ¿´Î¶¼È¥ÕÒÔ´Âë°ü£¬È ......
1. È¥http://java.sun.com/javase/downloads/index.jspÏÂÔØÒ»¸öLinux PlatformµÄJDK¡£
2. ÉÏÔØ
# chmod 755 jdk-6u2-linux-i586-rpm.bin
# ./jdk-6u2-linux-i586-rpm.bin
3. ³ÌÐò»á×Ô¶¯Éú³ÉÎļþ
Ö´ÐÐ
# rpm -ivh jdk-6u11-linux-i586.rpm
4. ÉèÖû·¾³±äÁ¿
  ......
ºÜÔçÒÔǰ,¾ÍÏë°Ñ×Ô¼ºÔÚ¿ª·¢ÏîĿʱ¹ØÓÚlinuxÊØ»¤½ø³ÌµÄ¼¼ÊõÕûÀíÒ»ÏÂ,·¢±íһƪÎÄÕÂ.½ñÌìÔÚÍøÉÏżȻÅöµ½ÓÐһƪдµÄͦ²»´íµÄÎÄÕÂ,ÕýºÃ¿ÉÒÔתÌù¹ýÀ´ºÍ´ó¼Ò·ÖÏí.
Linux Deamon±à³Ì·½·¨
ÊØ»¤½ø³Ì£¨Daemon£©ÊÇÔËÐÐÔÚºǫ́µÄÒ»ÖÖÌØÊâ½ø³Ì¡£Ëü¶ÀÁ¢ÓÚ¿ØÖÆÖն˲¢ÇÒÖ ......