linux 0.11 ÄÚºËѧϰ fcntl.c
/*
* linux/fs/fcntl.c
*
* (C) 1991 Linus Torvalds
*/
#include <string.h>
#include <errno.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <asm/segment.h>
#include <fcntl.h>
#include <sys/stat.h>
extern int sys_close(int fd);
/* ¸´ÖÆÎļþ¾ä±ú£¬²ÎÊýfdÊÇÖ¸Óë¸´ÖÆµÄÎļþ¾ä±ú£¬argÊÇÖ¸¶¨ÐÂÎļþµÄ¾ä±úµÄ×îСֵ */
static int dupfd(unsigned int fd, unsigned int arg)
{
// Èç¹ûÎļþ¾ä±úÖµ´óÓÚÒ»¸ö³ÌÐò×î¶à´ò¿ªÎļþÊýNR_OPEN£¬»òÕ߸þä±úµÄÎļþ½á¹¹²»´æÔÚ£¬Ôò³ö´í£¬
// ·µ»Ø³ö´íÂë²¢Í˳ö
if (fd >= NR_OPEN || !current->filp[fd])
return -EBADF;
// Èç¹ûÖ¸¶¨µÄоä±úÖµarg ´óÓÚ×î¶à´ò¿ªÎļþÊý£¬Ôò³ö´í
if (arg >= NR_OPEN)
return -EINVAL;
// ÔÚµ±Ç°½ø³ÌµÄÎļþ½á¹¹Ö¸ÕëÊý×éÖÐѰÕÒË÷ÒýºÅ´óÓÚµÈÓÚarg µ«»¹Ã»ÓÐʹÓõÄÏî
while (arg < NR_OPEN)
if (current->filp[arg])
arg++;
else
break;
// Èç¹ûÕÒµ½µÄоä±úÖµarg ´óÓÚ×î¶à´ò¿ªÎļþÊý£¬Ôò³ö´í
if (arg >= NR_OPEN)
return -EMFILE;
// ÔÚÔËÐÐexec()ÀຯÊýʱ²»¹Ø±Õ¸Ã¾ä±ú
current->close_on_exec &= ~(1<<arg);
// Áî¸ÃÎļþ½á¹¹Ö¸ÕëµÈÓÚÔ¾ä±úfd µÄÖ¸Õ룬²¢½«ÎļþÒýÓüÆÊýÔö1
(current->filp[arg] = current->filp[fd])->f_count++;
return arg;
}
/* ¸´ÖÆÎļþ¾ä±úϵͳµ÷Óú¯Êý */
int sys_dup2(unsigned int oldfd, unsigned int newfd)
{
// Èô¾ä±únewfd ÒѾ´ò¿ª£¬ÔòÊ×ÏȹرÕÖ®
sys_close(newfd);
// ¸´ÖƲ¢·µ»ØÐ¾ä±ú
return dupfd(oldfd,newfd);
}
/* ¸´ÖÆÎļþ¾ä±úϵͳµ÷Óú¯Êý¡£Ð¾ä±úµÄÖµÊǵ±Ç°×îСµÄδÓþä±ú */
int sys_dup(unsigned int fildes)
{
return dupfd(fildes,0);
}
/* Îļþ¿ØÖÆÏµÍ³µ÷Óú¯Êý */
int sys_fcntl(unsigned int fd, unsigned int cmd, unsigned long arg)
{
struct file * filp;
// Èç¹ûÎļþ¾ä±úÖµ´óÓÚÒ»¸ö½ø³Ì×î¶à´ò¿ªÎļþÊýNR_OPEN£¬»òÕ߸þä±úµÄÎļþ½á¹¹Ö¸ÕëΪ¿Õ£¬Ôò³ö´í£¬
// ·µ»Ø³ö´íÂë²¢Í˳ö
if (fd >= NR_OPEN || !(filp = current->filp[fd]))
return -EBADF;
switch (cmd)
{
case F_DUPFD: // ¸´ÖÆÎļþ¾ä±ú
return dupfd(fd,arg);
case F_GETFD: // È¡Îļþ¾ä±úµÄÖ
Ïà¹ØÎĵµ£º
С½á£º
Ê×ÏÈÒªÕÒµ½mySqlµÄÅäÖÃÎļþ
my.cnf
È»ºóÒª¸Ä¶ÔµØ·½
[client]ºÍ[mysqld]ÏÂͬʱ¼ÓÉÏdefault-character-set=utf8
È»ºó¼ÇµÃÐèÒªÖØÆôMySql.ÇÒ±£Ö¤¿Í»§¶ËµÄÁ¬½Ó·½Ê½Ò²ÊÇutf8.
Ԥף×Ô¼ºÐµÄÒ»Ä꣬¼ªÏéÈçÒ⣬ÐÄÏëʳɣ¡ ......
J2ee³ÌÐòÔ±Ó¦¸ÃÕÆÎÕµÄlinux֪ʶ
¿ª·¢ÕßÔÚÏß Builder.com.cn ¸üÐÂʱ¼ä:2007-09-01×÷ÕߣºÖйúITʵÑéÊÒ À´Ô´:ÖйúITʵÑéÊÒ
±¾ÎĹؼü´Ê£º Linux J2ee
¡¡Ò»°ã´óÐÍJ2EEÓ¦Óö¼ÔÚ½¨¹¹ÔÚlinux»·¾³Ïµġ£¿ª·¢»·¾³ÏÂÎÒÃÇ¿ÉÒÔͨ¹ýsambaÓ³Éä³É±¾µØµÄÍøÂçÇý¶¯Æ÷£¬Ö±½ÓÔÚwindows»·¾³Ï½øÐбà³Ìµ÷ÊÔ¡£µ«ÊÇ×îºóµÄ·¢²¼»¹ÊÇÒªµ½linux»·¾³£¬ ......
×îÐÂliuxÏÂtomcat5.5.25+mysql5.0.45+jdk1.0.5.13+eclipse3.3.1+myeclipse6.0ÅäÖÃ
Ò»¡¢°²×°ËùÐèÈí¼þ°ü£º
1.JDK 5.0 Update 13(jdk-1_5_0_13-linux-i586-rpm.bin)
ÏÂÔØµØÖ·£º
http://sdlc-esd.sun.com/ESD36/JSCDL/jdk/1.5.0_13/jdk-1_5_0_13-linux ......
ÏÂÔØ SDK
ϵͳºÍÈí¼þÐèÇó
ÓÃAndroid sdkµÄ´úÂëºÍ¹¤¾ß¿ª·¢AndroidÓ¦ÓóÌÐò,ÄãÐèÒªÏÂÃæÁгöÀ´µÄºÏÊÊ¿ª·¢µçÄԺͿª·¢»·¾³.
ËùÐè²Ù×÷ϵͳ:
•Windows XP »ò Vista
•Mac OS X 10.4.8 »ò¸ü¸ß°æ±¾ (½öÖ§³Öx86)
•Linux ( Linux Ubuntu Dapper Drake °æ±¾ÒѲâÊÔ)
ËùÐ迪·¢»·¾³:
•Eclipse IDE
◦Ecli ......