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

linux 0.11 ÄÚºËѧϰ read_write.c


/*
 * ¸ÃÎļþʵÏÖϵͳµ÷ÓÃread£¬writeºÍlseek¡£
 */
/*
 *  linux/fs/read_write.c
 *
 *  (C) 1991  Linus Torvalds
 */
#include <sys/stat.h>
#include <errno.h>
#include <sys/types.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <asm/segment.h>
/* ×Ö·ûÉ豸¶Áдº¯Êý */
extern int rw_char(int rw,int dev, char * buf, int count, off_t * pos);
/* ¶Á¹ÜµÀ²Ù×÷º¯Êý */
extern int read_pipe(struct m_inode * inode, char * buf, int count);
/* д¹ÜµÀ²Ù×÷º¯Êý */
extern int write_pipe(struct m_inode * inode, char * buf, int count);
/* ¿éÉ豸¶Á²Ù×÷º¯Êý */
extern int block_read(int dev, off_t * pos, char * buf, int count);
/* ¿éÉ豸д²Ù×÷º¯Êý */
extern int block_write(int dev, off_t * pos, char * buf, int count);
/* ¶ÁÎļþ²Ù×÷º¯Êý */
extern int file_read(struct m_inode * inode, struct file * filp,
char * buf, int count);
/* дÎļþ²Ù×÷º¯Êý */
extern int file_write(struct m_inode * inode, struct file * filp,
char * buf, int count);
/* ÖØ¶¨Î»Îļþ¶ÁдָÕëϵͳµ÷Óú¯Êý£¬²ÎÊýfdÊÇÎļþ¾ä±ú£¬offsetÊÇеÄÎļþ */
/* ¶ÁÐ´Æ«ÒÆÁ¿£¬originÊÇÆ«ÒÆµÄÆðʼµØÖ·£¬¿ÉÄÜÊÇÏÂÃæµÄÈý¸öÖµ£ºSEEK_SET   */
/* ÎļþµÄ¿ªÊ¼´¦£¬SEEK_CURµ±Ç°µÄ¶ÁдλÖã¬SEEK_ENDÎļþ½áβ´¦           */
int sys_lseek(unsigned int fd,off_t offset, int origin)
{
struct file * file;
int tmp;
// Èç¹ûÎļþ¾ä±úÖµ´óÓÚ³ÌÐò×î¶à´ò¿ªÎļþÊýNR_OPEN(20)£¬»òÕ߸þä±úµÄÎļþ½á¹¹Ö¸ÕëΪ¿Õ£¬»òÕß
// ¶ÔÓ¦Îļþ½á¹¹µÄi ½Úµã×Ö¶ÎΪ¿Õ£¬»òÕßÖ¸¶¨É豸ÎļþÖ¸ÕëÊDz»¿É¶¨Î»µÄ£¬Ôò·µ»Ø³ö´íÂë²¢Í˳ö
if (fd >= NR_OPEN || !(file=current->filp[fd]) || !(file->f_inode)
  || !IS_SEEKABLE(MAJOR(file->f_inode->i_dev)))
return -EBADF;
// Èç¹ûÎļþ¶ÔÓ¦µÄi ½ÚµãÊǹܵÀ½Úµã£¬Ôò·µ»Ø³ö´íÂ룬Í˳ö
if (file->f_inode->i_pipe)
return -ESPIPE;
switch (origin) {
case 0: // SEEK_SET
// ÈôÆ«ÒÆÖµÐ¡ÓÚÁ㣬Ôò³ö´í
if (offset<0) return -EINVAL;
// ÉèÖÃÎļþ¶ÁдָÕëµÈÓÚoffset
file->f_


Ïà¹ØÎĵµ£º

Linux¸÷·¢Ðа汾 ÓÅȱµã ¼ò½é


 
Linux¸÷·¢Ðа汾 ÓÅȱµã ¼ò½é
À´Ô´: ChinaUnix²©¿Í ¡¡ÈÕÆÚ£º 2008.01.21 13:43¡¡(¹²ÓÐ25ÌõÆÀÂÛ) ÎÒÒªÆÀÂÛ
 
Linux×îÔçÓÉLinus Benedict TorvaldsÔÚ1991Ä꿪ʼ±àд¡£ÔÚÕâ֮ǰ£¬Richard
Stallman´´½¨ÁËFree Software
Foundation£¨FSF£©×éÖ¯ÒÔ¼°GNUÏîÄ¿£¬²¢²»¶ÏµÄ±àд´´½¨GNU³ÌÐò£¨´ËÀà³ÌÐòµÄÐí¿É·½Ê½¾ùΪ ......

´Ólinux¹âÅÌ×öyumÔ´

Yum£¨È«³ÆÎª Yellow dog Updater, Modified£©ÊÇÒ»¸öÔÚFedoraÖеÄshellǰ¶ËÈí¼þ°ü¹ÜÀíÆ÷¡£»ùÓÚrpm°ü¹ÜÀí£¬Äܹ»´ÓÖ¸¶¨µÄ·þÎñÆ÷×Ô¶¯ÏÂÔØRPM°ü²¢ÇÒ°²×°£¬¿ÉÒÔ×Ô¶¯´¦ÀíÒÀÀµÐÔ¹ØÏµ£¬²¢ÇÒÒ»´Î°²×°ËùÓÐÒÀÀµµÄÈíÌå°ü£¬ÎÞÐë·±ËöµØÒ»´Î´ÎÏÂÔØ¡¢°²×°¡£
ÏÂÃæ½éÉÜÒ»¸ö´Ó¹âÅÌ×öyumÔ´µÄСʵÑé
±¾ÊÔÑéʹÓÃCentOS-5.4-i386-bin,DVD.isoÈí¼þ° ......

ǶÈëʽLinux²Ù×÷ϵͳѧϰ¹æ

ǶÈëʽLinux²Ù×÷ϵͳѧϰ¹æ»®
ARM+LINUX·Ïߣ¬Ö÷¹¥Ç¶ÈëʽLinux²Ù×÷ϵͳ¼°ÆäÉÏÓ¦ÓÃÈí¼þ¿ª·¢Ä¿±ê£º 
£¨1£© ÕÆÎÕÖ÷Á÷ǶÈëʽ΢´¦ÀíÆ÷µÄ½á¹¹ÓëÔ­Àí£¨³õ²½¶¨Îªarm9£© 
£¨2£© ±ØÐëÕÆÎÕÒ»¸öǶÈëʽ²Ù×÷ϵͳ £¨³õ²½¶¨Îªuclinux»òlinux,°æ±¾´ý¶¨£© 
£¨3£© ±ØÐëÊìϤǶÈëʽÈí¼þ¿ª·¢Á÷³Ì²¢ÖÁÉÙ×öÒ ......

¡¶LINUXÉ豸Çý¶¯³ÌÐò¡·Ñ§Ï°Ôý¼Ç£¨¶þ£©

×ܽáÕ½ڣºµÚÈý½Ú ×Ö·ûÉ豸Çý¶¯
ÕâÒ»ÕÂÖ÷ÒªÊǽ²Ò»Ð©×Ö·ûÉ豸Çý¶¯³ÌÐòµÄÏà¹ØÖªÊ¶¡£ÔÚ½øÐÐ×Ö·ûÉ豸Çý¶¯³ÌÐòѧϰ֮ǰ£¬ÎÒÃDZØÐëµÃŪÃ÷°×Ò»¸öÎÊÌ⣺Çý¶¯³ÌÐòʱ¸øË­Óõġ£
ºÜ¶àÇý¶¯³ÌÐòµÄ³õѧÕߣ¬°´ÕÕÒ»°ã±à³ÌÓïÑÔ£¨C£¬javaµÈµÈ£©±àдӦÓóÌÐòµÄ¾­Ñ飬º¯Êý¾ÍÊÇÓÃÀ´µ÷Óõġ£ÕâÖÖµ÷ÓùØÏµ£¬ÔÚÓ¦ÓÿռäÀ´¿´£¬ÏÞÖÆ²»ÊǺÜÃ÷ÏÔ¡£ºÜ¶à ......

linux 0.11 ÄÚºËѧϰ truncate.c


/*
 * ¸ÃÎļþÖ÷ҪʵÏÖµÄÊÇtruncateº¯Êý£¬¸Ãº¯ÊýÊÇÊÍ·ÅÖ¸¶¨i 
 * ½ÚµãÔÚÉ豸ÉÏÕ¼ÓõÄËùÓÐÂß¼­¿é£¬°üÀ¨Ö±½Ó¿é¡¢Ò»´Î¼ä
 * ½Ó¿éºÍ¶þ´Î¼ä½Ó¿é
 */
/*
 *  linux/fs/truncate.c
 *
 *  (C) 1991  Linus Torvalds
 */
#include <linux/sched.h>
......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ