©®linuxÉçÇø©® °®ÐÄÔ®Öú ©® LinuxÈÏÖ¤©®ÏµÁÐ½Ì³Ì ©® Òµ½ç¶¯Ì¬©® Õ¾ÎñÐÂÎÅ ©® ¹«Ë¾ÕÐÆ¸©® ½¨ÒéÁôÑÔ ©® ÍøÖ·´óÈ« ©®LPIרÌâ©® CISCOרÌâ
ÉèΪÊ×Ò³
¼ÓÈëÊÕ²Ø
¹ÜÀíÍŶÓ
JSP  
JAVA  
PERL  
 ÄúµÄλÖãºÊ×Ò³ > article > Linux¿ª·¢Çø > Èí¼þ¿ª·¢ >
À¸Ä¿µ¼À¸
×ÊÁÏËÑË÷
ÈÈÃÅÎÄÕÂ
¡¤Linux Ï C ÓïÑÔ±à³Ì
¡¤LinuxϵÄͨÓÃÏ̳߳ش´½¨
¡¤C++×Ö·û´®×ª»»Æª
¡¤linux C ½ø³Ì²Ù×÷ƪ
¡¤linuxÉϵÄC/C++±àÒëÆ÷gcc/egcs
¡¤linux C ÎļþȨÏÞ¿ØÖÆÆª
¡¤GCCʹÓÃÊÖ²á
¡¤linux C ½Ó¿Ú´¦ÀíÆª
¡¤ÔÚRedhat LinuxÉϰ²×° GCC ±àÒë
¡¤GCCʹÓÃÖ¸ÄÏ
¡¤CÓïÑÔÔËËã·û
¡¤LinuxÏÂC¿ª·¢»·¾³µÄ¹¹³ÉºÍ°²×°
¡¤fopen()º¯ÊýµÄ²ÎÊý˵Ã÷
¡¤GCCʹÓÃÊÖ²áÓë³£ÓÃÃüÁî
¡¤Scheme ÓïÑÔ½éÉÜ
×îÐÂÎÄÕÂ
¡¤ÔÚUbuntu Linux 8.04ÉϹ¹½¨GCC
¡¤Linux²Ù×÷ϵͳÏÂSocket±à³ÌµØÖ·
¡¤½«VC³ÌÐòÒÆÖ²µ½LinuxϵͳµÄ¼¸µã
¡¤LinuxÏÂmalloc/freeÓënew/dele
¡¤LinuxÏÂÓÃGTKºÍsocketʵÏÖ¼òµ¥
¡¤Linux²Ù×÷ϵͳÏÂÈÃTomcatÆô¶¯ÔÚ
¡¤Linux²Ù×÷ϵͳÖÐÈçºÎ±àÒëC³ÌÐò
¡¤¼¸ÖÖ³£±»ÈËÃǺöÂÔµÄLinuxϵͳÏÂ
¡¤Eclipse±à³Ì¹¤¾ß ÔÚUbuntuϵÄ
¡¤Linux²Ù×÷ϵͳϵÄÍøÂçµØÖ·×ª»»
¡¤ÀÏÊÖ¾­Ñé̸£ºLinuxÇý¶¯³ÌÐò¿ª·¢
¡¤Linux²Ù×÷ϵͳ¶àÏß³Ìͬ²½Mutex
¡¤Linux²Ù×÷ϵͳÏÂC³ÌÐòÓïÑÔ¼òÒ×
¡¤Linuxϵͳƽ̨ϹØÓÚGCC±àÒë¼°
¡¤½â¾öLinuxϵͳϹܵÀ±»½ÓÊÜ·½¹Ø
Google
 
linux C ÎļþȨÏÞ¿ØÖÆÆª
[ ×÷Õß:LinuxÁªÃËÊÕ¼¯  ¼ÓÈëʱ¼ä:2006-06-24 14:02:38  À´×Ô:LinuxÁªÃËÊÕ¼¯ ]
£hw5LinuxÁªÃË
·µ»ØÖµ
³É¹¦Ôò·µ»Ø0£¬Ê§°Ü·µ»Ø-1£¬´íÎóÔ­Òò´æÓÚerrno¡£hw5LinuxÁªÃË
¸½¼Ó˵Ã÷
link()Ëù½¨Á¢µÄÓ²Á¬½ÓÎÞ·¨¿çÔ½²»Í¬Îļþϵͳ£¬Èç¹ûÐèÒªÇë¸ÄÓÃsymlink()¡£hw5LinuxÁªÃË
´íÎó´úÂë
EXDEV ²ÎÊýoldpathÓënewpath²»Êǽ¨Á¢ÔÚͬһÎļþϵͳ¡£hw5LinuxÁªÃË
EPERM ²ÎÊýoldpathÓënewpathËùÖ¸µÄÎļþϵͳ²»Ö§³ÖÓ²Á¬½Óhw5LinuxÁªÃË
EROFS Îļþ´æÔÚÓÚÖ»¶ÁÎļþϵͳÄÚhw5LinuxÁªÃË
EFAULT ²ÎÊýoldpath»ònewpath Ö¸Õ볬³ö¿É´æÈ¡ÄÚ´æ¿Õ¼ä¡£hw5LinuxÁªÃË
ENAMETOLLONG ²ÎÊýoldpath»ònewpathÌ«³¤hw5LinuxÁªÃË
ENOMEM ºËÐÄÄÚ´æ²»×ãhw5LinuxÁªÃË
EEXIST ²ÎÊýnewpathËùÖ¸µÄÎļþÃûÒÑ´æÔÚ¡£hw5LinuxÁªÃË
EMLINK ²ÎÊýoldpathËùÖ¸µÄÎļþÒÑ´ï×î´óÁ¬½ÓÊýÄ¿¡£hw5LinuxÁªÃË
ELOOP ²ÎÊýpathnameÓйý¶à·ûºÅÁ¬½ÓÎÊÌâhw5LinuxÁªÃË
ENOSPC ÎļþϵͳµÄÊ£Óà¿Õ¼ä²»×ã¡£hw5LinuxÁªÃË
EIO I/O ´æÈ¡´íÎó¡£hw5LinuxÁªÃË
·¶Àý
/* ½¨Á¢/etc/passwd µÄÓ²Á¬½ÓΪpass */hw5LinuxÁªÃË
#include<unistd.h>hw5LinuxÁªÃË
main()hw5LinuxÁªÃË
{hw5LinuxÁªÃË
link(¡°/etc/passwd¡±,¡±pass¡±);hw5LinuxÁªÃË
}hw5LinuxÁªÃË
¡¡
hw5LinuxÁªÃË
hw5LinuxÁªÃË
hw5LinuxÁªÃË
lstat£¨ÓÉÎļþÃèÊö´ÊÈ¡µÃÎļþ״̬£©
Ïà¹Øº¯Êý
stat£¬fstat£¬chmod£¬chown£¬readlink£¬utimehw5LinuxÁªÃË
±íÍ·Îļþ
#include<sys/stat.h>hw5LinuxÁªÃË
#include<unistd.h>hw5LinuxÁªÃË
¶¨Ò庯Êý
int lstat (const char * file_name.struct stat * buf);hw5LinuxÁªÃË
º¯Êý˵Ã÷
lstat()Óëstat()×÷ÓÃÍêÈ«Ïàͬ£¬¶¼ÊÇÈ¡µÃ²ÎÊýfile_nameËùÖ¸µÄÎļþ״̬£¬Æä²î±ðÔÚÓÚ£¬µ±ÎļþΪ·ûºÅÁ¬½Óʱ£¬lstat()»á·µ»Ø¸Ãlink±¾ÉíµÄ״̬¡£ÏêϸÄÚÈÝÇë²Î¿¼stat()¡£hw5LinuxÁªÃË
·µ»ØÖµ
Ö´Ðгɹ¦Ôò·µ»Ø0£¬Ê§°Ü·µ»Ø-1£¬´íÎó´úÂë´æÓÚerrno¡£hw5LinuxÁªÃË
·¶Àý
²Î¿¼stat()¡£hw5LinuxÁªÃË
¡¡
hw5LinuxÁªÃË
hw5LinuxÁªÃË
hw5LinuxÁªÃË
opendir£¨´ò¿ªÄ¿Â¼£©
Ïà¹Øº¯Êý
open£¬readdir£¬closedir£¬rewinddir£¬seekdir£¬telldir£¬scandirhw5LinuxÁªÃË
±íÍ·Îļþ
#include<sys/types.h>hw5LinuxÁªÃË
#include<dirent.h>hw5LinuxÁªÃË
¶¨Ò庯Êý
DIR * opendir(const char * name);hw5LinuxÁªÃË
º¯Êý˵Ã÷
opendir()ÓÃÀ´´ò¿ª²ÎÊýnameÖ¸¶¨µÄĿ¼£¬²¢·µ»ØDIR*ÐÎ̬µÄĿ¼Á÷£¬ºÍopen()ÀàËÆ£¬½ÓÏÂÀ´¶ÔĿ¼µÄ¶ÁÈ¡ºÍËÑË÷¶¼ÒªÊ¹Óô˷µ»ØÖµ¡£hw5LinuxÁªÃË
·µ»ØÖµ
³É¹¦Ôò·µ»ØDIR* ÐÍ̬µÄĿ¼Á÷£¬´ò¿ªÊ§°ÜÔò·µ»ØNULL¡£hw5LinuxÁªÃË
´íÎó´úÂë
EACCESS ȨÏÞ²»×ãhw5LinuxÁªÃË
EMFILE ÒÑ´ïµ½½ø³Ì¿Éͬʱ´ò¿ªµÄÎļþÊýÉÏÏÞ¡£hw5LinuxÁªÃË
ENFILE ÒѴﵽϵͳ¿Éͬʱ´ò¿ªµÄÎļþÊýÉÏÏÞ¡£hw5LinuxÁªÃË
ENOTDIR ²ÎÊýname·ÇÕæÕýµÄĿ¼hw5LinuxÁªÃË
ENOENT ²ÎÊýname Ö¸¶¨µÄĿ¼²»´æÔÚ£¬»òÊDzÎÊýname Ϊһ¿Õ×Ö·û´®¡£hw5LinuxÁªÃË
ENOMEM ºËÐÄÄÚ´æ²»×ã¡£hw5LinuxÁªÃË
¡¡
hw5LinuxÁªÃË
hw5LinuxÁªÃË
hw5LinuxÁªÃË
readdir£¨¶ÁȡĿ¼£©
Ïà¹Øº¯Êý
open£¬opendir£¬closedir£¬rewinddir£¬seekdir£¬telldir£¬scandirhw5LinuxÁªÃË
±íÍ·Îļþ
#include<sys/types.h>hw5LinuxÁªÃË
#include<dirent.h>hw5LinuxÁªÃË
¶¨Ò庯Êý
struct dirent * readdir(DIR * dir);hw5LinuxÁªÃË
º¯Êý˵Ã÷
readdir()·µ»Ø²ÎÊýdirĿ¼Á÷µÄϸöĿ¼½øÈëµã¡£hw5LinuxÁªÃË
½á¹¹dirent¶¨ÒåÈçÏÂhw5LinuxÁªÃË
struct direnthw5LinuxÁªÃË
{hw5LinuxÁªÃË
ino_t d_ino;hw5LinuxÁªÃË
ff_t d_off;hw5LinuxÁªÃË
signed short int d_reclen;hw5LinuxÁªÃË
unsigned char d_type;hw5LinuxÁªÃË
har d_name[256;hw5LinuxÁªÃË
};hw5LinuxÁªÃË
d_ino ´ËĿ¼½øÈëµãµÄinodehw5LinuxÁªÃË
d_off Ŀ¼Îļþ¿ªÍ·ÖÁ´ËĿ¼½øÈëµãµÄÎ»ÒÆhw5LinuxÁªÃË
d_reclen _nameµÄ³¤¶È£¬²»°üº¬NULL×Ö·ûhw5LinuxÁªÃË
d_type d_name ËùÖ¸µÄÎļþÀàÐÍhw5LinuxÁªÃË
d_name ÎļþÃûhw5LinuxÁªÃË
·µ»ØÖµ
³É¹¦Ôò·µ»ØÏ¸öĿ¼½øÈëµã¡£ÓдíÎó·¢Éú»ò¶ÁÈ¡µ½Ä¿Â¼ÎļþβÔò·µ»ØNULL¡£hw5LinuxÁªÃË
¸½¼Ó˵Ã÷
EBADF²ÎÊýdirΪÎÞЧµÄĿ¼Á÷¡£hw5LinuxÁªÃË
·¶Àý
#include<sys/types.h>hw5LinuxÁªÃË
#include<dirent.h>hw5LinuxÁªÃË
#include<unistd.h>hw5LinuxÁªÃË
main()hw5LinuxÁªÃË
{hw5LinuxÁªÃË
DIR * dir;hw5LinuxÁªÃË
struct dirent * ptr;hw5LinuxÁªÃË
int i;hw5LinuxÁªÃË
dir =opendir(¡°/etc/rc.d¡±);hw5LinuxÁªÃË
while((ptr = readdir(dir))!=NULL)hw5LinuxÁªÃË
{hw5LinuxÁªÃË
printf(¡°d_name: %sn¡±,ptr->d_name);hw5LinuxÁªÃË
}hw5LinuxÁªÃË
closedir(dir);hw5LinuxÁªÃË
}hw5LinuxÁªÃË
Ö´ÐÐ
d_name:.hw5LinuxÁªÃË
d_name:..hw5LinuxÁªÃË
d_name:init.dhw5LinuxÁªÃË
d_name:rc0.dhw5LinuxÁªÃË
d_name:rc1.dhw5LinuxÁªÃË
d_name:rc2.dhw5LinuxÁªÃË
d_name:rc3.dhw5LinuxÁªÃË
d_name:rc4.dhw5LinuxÁªÃË
d_name:rc5.dhw5LinuxÁªÃË
d_name:rc6.dhw5LinuxÁªÃË
d_name:rchw5LinuxÁªÃË
d_name:rc.localhw5LinuxÁªÃË
d_name:rc.sysinithw5LinuxÁªÃË
¡¡
hw5LinuxÁªÃË
hw5LinuxÁªÃË
hw5LinuxÁªÃË
readlink£¨È¡µÃ·ûºÅÁ¬½ÓËùÖ¸µÄÎļþ£©
Ïà¹Øº¯Êý
stat£¬lstat£¬symlinkhw5LinuxÁªÃË
±íÍ·Îļþ
#include<unistd.h>hw5LinuxÁªÃË
¶¨Ò庯Êý
int readlink(const char * path ,char * buf,size_t bufsiz);hw5LinuxÁªÃË
º¯Êý˵Ã÷
readlink()»á½«²ÎÊýpathµÄ·ûºÅÁ¬½ÓÄÚÈÝ´æµ½²ÎÊýbufËùÖ¸µÄÄÚ´æ¿Õ¼ä£¬·µ»ØµÄÄÚÈݲ»ÊÇÒÔNULL×÷×Ö·û´®½á⣬µ«»á½«×Ö·û´®µÄ×Ö·ûÊý·µ»Ø¡£Èô²ÎÊýbufsizСÓÚ·ûºÅÁ¬½ÓµÄÄÚÈݳ¤¶È£¬¹ý³¤µÄÄÚÈݻᱻ½Ø¶Ï¡£hw5LinuxÁªÃË
·µ»ØÖµ
Ö´Ðгɹ¦Ôò´«·ûºÅÁ¬½ÓËùÖ¸µÄÎļþ·¾¶×Ö·û´®£¬Ê§°ÜÔò·µ»Ø-1£¬´íÎó´úÂë´æÓÚerrno¡£hw5LinuxÁªÃË
´íÎó´úÂë
EACCESS È¡Îļþʱ±»¾Ü¾ø£¬È¨ÏÞ²»¹»hw5LinuxÁªÃË
EINVAL ²ÎÊýbufsiz Ϊ¸ºÊýhw5LinuxÁªÃË
EIO I/O ´æÈ¡´íÎó¡£hw5LinuxÁªÃË
ELOOP Óû´ò¿ªµÄÎļþÓйý¶à·ûºÅÁ¬½ÓÎÊÌâ¡£hw5LinuxÁªÃË
ENAMETOOLONG ²ÎÊýpathµÄ·¾¶Ãû³ÆÌ«³¤hw5LinuxÁªÃË
ENOENT ²ÎÊýpathËùÖ¸¶¨µÄÎļþ²»´æÔÚhw5LinuxÁªÃË
ENOMEM ºËÐÄÄÚ´æ²»×ãhw5LinuxÁªÃË
ENOTDIR ²ÎÊýpath·¾¶ÖеÄĿ¼´æÔÚµ«È´·ÇÕæÕýµÄĿ¼¡£hw5LinuxÁªÃË
¡¡
hw5LinuxÁªÃË
hw5LinuxÁªÃË
hw5LinuxÁªÃË
remove£¨É¾³ýÎļþ£©
Ïà¹Øº¯Êý
link£¬rename£ LinuxÁªÃËÊÕ¼¯ÕûÀí ,תÌùÇë±êÃ÷ԭʼÁ´½Ó,ÈçÓÐÈκÎÒÉÎÊ»¶Ó­À´±¾Õ¾LinuxÂÛ̳ÌÖÂÛ
·ÖÒ³£º1 2 3 [4] 5 6 7
¡¾ÆÀÂÛ¡¿¡¾¼ÓÈëÊղؼС¿¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿¡¾¹Ø±Õ¡¿
¡ù Ïà¹ØÁ´½Ó
ÎÞÏà¹ØÐÅÏ¢