©®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ÁªÃË
EIO I/O ´æÈ¡´íÎóhw5LinuxÁªÃË
·¶Àý
/* ½«/etc/passwd ÎļþȨÏÞÉè³ÉS_IRUSR|S_IWUSR|S_IRGRP|S_IROTH */hw5LinuxÁªÃË
#include<sys/types.h>hw5LinuxÁªÃË
#include<sys/stat.h>hw5LinuxÁªÃË
main()hw5LinuxÁªÃË
{hw5LinuxÁªÃË
chmod(¡°/etc/passwd¡±,S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);hw5LinuxÁªÃË
}hw5LinuxÁªÃË
¡¡
hw5LinuxÁªÃË
hw5LinuxÁªÃË
hw5LinuxÁªÃË
chown£¨¸Ä±äÎļþµÄËùÓÐÕߣ©
Ïà¹Øº¯Êý
fchown£¬lchown£¬chmodhw5LinuxÁªÃË
±íÍ·Îļþ
#include<sys/types.h>hw5LinuxÁªÃË
#include<unistd.h>hw5LinuxÁªÃË
¶¨Ò庯Êý
int chown(const char * path, uid_t owner,gid_t group);hw5LinuxÁªÃË
º¯Êý˵Ã÷
chown()»á½«²ÎÊýpathÖ¸¶¨ÎļþµÄËùÓÐÕß±ä¸üΪ²ÎÊýowner´ú±íµÄÓû§£¬¶ø½«¸ÃÎļþµÄ×é±ä¸üΪ²ÎÊýgroup×é¡£Èç¹û²ÎÊýowner»ògroupΪ-1£¬¶ÔÓ¦µÄËùÓÐÕß»ò×é²»»áÓÐËù¸Ä±ä¡£rootÓëÎļþËùÓÐÕ߽ԿɸıäÎļþ×飬µ«ËùÓÐÕß±ØÐëÊDzÎÊýgroup×éµÄ³ÉÔ±¡£µ±rootÓÃchown()¸Ä±äÎļþËùÓÐÕß»ò×éʱ£¬¸ÃÎļþÈô¾ßÓÐS_ISUID»òS_ISGIDȨÏÞ£¬Ôò»áÇå³ý´ËȨÏÞ룬´ËÍâÈç¹û¾ßÓÐS_ISGIDȨÏÞµ«²»¾ßS_IXGRP룬Ôò¸ÃÎļþ»á±»Ç¿ÖÆËø¶¨£¬Îļþģʽ»á±£Áô¡£hw5LinuxÁªÃË
·µ»ØÖµ
³É¹¦Ôò·µ»Ø0£¬Ê§°Ü·µ»Ø-1£¬´íÎóÔ­Òò´æÓÚerrno¡£hw5LinuxÁªÃË
´íÎó´úÂë
²Î¿¼chmod£¨£©¡£hw5LinuxÁªÃË
·¶Àý
/* ½«/etc/passwd µÄËùÓÐÕߺÍ×é¶¼ÉèΪroot */hw5LinuxÁªÃË
#include<sys/types.h>hw5LinuxÁªÃË
#include<unistd.h>hw5LinuxÁªÃË
main()hw5LinuxÁªÃË
{hw5LinuxÁªÃË
chown(¡°/etc/passwd¡±,0,0);hw5LinuxÁªÃË
}hw5LinuxÁªÃË
¡¡
hw5LinuxÁªÃË
hw5LinuxÁªÃË
hw5LinuxÁªÃË
chroot£¨¸Ä±ä¸ùĿ¼£©
Ïà¹Øº¯Êý
chdirhw5LinuxÁªÃË
±íÍ·Îļþ
#include<unistd.h>hw5LinuxÁªÃË
¶¨Ò庯Êý
int chroot(const char * path);hw5LinuxÁªÃË
º¯Êý˵Ã÷
chroot()ÓÃÀ´¸Ä±ä¸ùĿ¼Ϊ²ÎÊýpath ËùÖ¸¶¨µÄĿ¼¡£Ö»Óг¬¼¶Óû§²ÅÔÊÐí¸Ä±ä¸ùĿ¼£¬×Ó½ø³Ì½«¼Ì³ÐеĸùĿ¼¡£hw5LinuxÁªÃË
·µ»ØÖµ
µ÷Óóɹ¦Ôò·µ»Ø0£¬Ê§°ÜÔò·µ-1£¬´íÎó´úÂë´æÓÚerrno¡£hw5LinuxÁªÃË
´íÎó´úÂë
EPERM ȨÏÞ²»×㣬ÎÞ·¨¸Ä±ä¸ùĿ¼¡£hw5LinuxÁªÃË
EFAULT ²ÎÊýpathÖ¸Õ볬³ö¿É´æÈ¡ÄÚ´æ¿Õ¼ä¡£hw5LinuxÁªÃË
ENAMETOOLONG ²ÎÊýpathÌ«³¤¡£hw5LinuxÁªÃË
ENOTDIR ·¾¶ÖеÄĿ¼´æÔÚµ«È´·ÇÕæÕýµÄĿ¼¡£hw5LinuxÁªÃË
EACCESS ´æÈ¡Ä¿Â¼Ê±±»¾Ü¾øhw5LinuxÁªÃË
ENOMEM ºËÐÄÄÚ´æ²»×ã¡£hw5LinuxÁªÃË
ELOOP ²ÎÊýpathÓйý¶à·ûºÅÁ¬½ÓÎÊÌâ¡£hw5LinuxÁªÃË
EIO I/O ´æÈ¡´íÎó¡£hw5LinuxÁªÃË
·¶Àý
/* ½«¸ùĿ¼¸ÄΪ/tmp ,²¢½«¹¤×÷Ŀ¼Çл»ÖÁ/tmp */hw5LinuxÁªÃË
#include<unistd.h>hw5LinuxÁªÃË
main()hw5LinuxÁªÃË
{hw5LinuxÁªÃË
chroot(¡°/tmp¡±);hw5LinuxÁªÃË
chdir(¡°/¡±);hw5LinuxÁªÃË
}hw5LinuxÁªÃË
¡¡
hw5LinuxÁªÃË
hw5LinuxÁªÃË
hw5LinuxÁªÃË
closedir£¨¹Ø±ÕĿ¼£©
Ïà¹Øº¯Êý
opendirhw5LinuxÁªÃË
±íÍ·Îļþ
#include<sys/types.h>hw5LinuxÁªÃË
#include<dirent.h>hw5LinuxÁªÃË
¶¨Ò庯Êý
int closedir(DIR *dir);hw5LinuxÁªÃË
º¯Êý˵Ã÷
closedir()¹Ø±Õ²ÎÊýdirËùÖ¸µÄĿ¼Á÷¡£hw5LinuxÁªÃË
·µ»ØÖµ
¹Ø±Õ³É¹¦Ôò·µ»Ø0£¬Ê§°Ü·µ»Ø-1£¬´íÎóÔ­Òò´æÓÚerrno ÖС£hw5LinuxÁªÃË
´íÎó´úÂë
EBADF ²ÎÊýdirΪÎÞЧµÄĿ¼Á÷hw5LinuxÁªÃË
·¶Àý
²Î¿¼readir()¡£hw5LinuxÁªÃË
¡¡
hw5LinuxÁªÃË
hw5LinuxÁªÃË
hw5LinuxÁªÃË
fchdir£¨¸Ä±äµ±Ç°µÄ¹¤×÷Ŀ¼£©
Ïà¹Øº¯Êý
getcwd£¬chroothw5LinuxÁªÃË
±íÍ·Îļþ
#include<unistd.h>hw5LinuxÁªÃË
¶¨Ò庯Êý
int fchdir(int fd);hw5LinuxÁªÃË
º¯Êý˵Ã÷
fchdir()ÓÃÀ´½«µ±Ç°µÄ¹¤×÷Ŀ¼¸Ä±ä³ÉÒÔ²ÎÊýfd ËùÖ¸µÄÎļþÃèÊö´Ê¡£hw5LinuxÁªÃË
·µ»ØÖµÖ´
Ðгɹ¦Ôò·µ»Ø0£¬Ê§°Ü·µ»Ø-1£¬errnoΪ´íÎó´úÂë¡£hw5LinuxÁªÃË
¸½¼Ó˵Ã÷
hw5LinuxÁªÃË
·¶Àý
#include<sys/types.h>hw5LinuxÁªÃË
#include<sys/stat.h>hw5LinuxÁªÃË
#include<fcntl.h>hw5LinuxÁªÃË
#include<unistd.h>hw5LinuxÁªÃË
main()hw5LinuxÁªÃË
{hw5LinuxÁªÃË
int fd;hw5LinuxÁªÃË
fd = open(¡°/tmp¡±,O_RDONLY);hw5LinuxÁªÃË
fchdir(fd);hw5LinuxÁªÃË
printf(¡°current working directory : %s n¡±,getcwd(NULL,NULL));hw5LinuxÁªÃË
close(fd);hw5LinuxÁªÃË
}hw5LinuxÁªÃË
Ö´ÐÐ
current working directory : /tmphw5LinuxÁªÃË
¡¡
hw5LinuxÁªÃË
hw5LinuxÁªÃË
hw5LinuxÁªÃË
fchmod£¨¸Ä±äÎļþµÄȨÏÞ£©
Ïà¹Øº¯Êý
chmod£¬stat£¬open£¬chownhw5LinuxÁªÃË
±íÍ·Îļþ
#include<sys/types.h>hw5LinuxÁªÃË
#include<sys/stat.h>hw5LinuxÁªÃË
¶¨Ò庯Êý
int fchmod(int fildes,mode_t mode);hw5LinuxÁªÃË
º¯Êý˵Ã÷
fchmod()»áÒÀ²ÎÊýmodeȨÏÞÀ´¸ü¸Ä²ÎÊýfildesËùÖ¸ÎļþµÄȨÏÞ¡£²ÎÊýfildesΪÒÑ´ò¿ªÎļþµÄÎļþÃèÊö´Ê¡£²ÎÊýmodeÇë²Î¿¼chmod£¨£©¡£hw5LinuxÁªÃË
·µ»ØÖµ
ȨÏ޸ıä³É¹¦Ôò·µ»Ø0£¬Ê§°Ü·µ»Ø-1£¬´íÎóÔ­Òò´æÓÚerrno¡£hw5LinuxÁªÃË
´íÎóÔ­Òò
EBADF ²ÎÊýfildesΪÎÞЧµÄÎļþÃèÊö´Ê¡£hw5LinuxÁªÃË
EPERM ½ø³ÌµÄÓÐЧÓû§Ê¶±ðÂëÓëÓûÐÞ¸ÄȨÏÞµÄÎļþËùÓÐÕß²»Í¬£¬¶øÇÒÒ²²»¾ßrootȨÏÞ¡ LinuxÁªÃËÊÕ¼¯ÕûÀí ,תÌùÇë±êÃ÷ԭʼÁ´½Ó,ÈçÓÐÈκÎÒÉÎÊ»¶Ó­À´±¾Õ¾LinuxÂÛ̳ÌÖÂÛ
·ÖÒ³£º1 [2] 3 4 5 6 7
¡¾ÆÀÂÛ¡¿¡¾¼ÓÈëÊղؼС¿¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿¡¾¹Ø±Õ¡¿
¡ù Ïà¹ØÁ´½Ó
ÎÞÏà¹ØÐÅÏ¢