linux c ¶ÁÈ¡ÎļþÐÐÊý²ÎÕÕwc ϵͳÃüÁî±àдµÄº¯ÊýÈçÏ£º
#include <fcntl.h>
#include <stdlib.h>
#define MAXBSIZE 65536
u_long file_wc(char *file)
{
register u_char *p;
register short gotsp;
register int ch, len;
register u_long linect, charct;
int fd;
u_char buf[MAXBSIZE];
if (file) {
if ((fd = open(file, O_RDONLY, 0)) < 0)
return -1;
for (gotsp = 1; len = read(fd, buf, MAXBSIZE);) {
if (len == -1)
return -1;
charct += len;
for (p = buf; len--;) {
ch = *p++;
if (ch == '\n')
++linect;
if (isspace(ch))
gotsp = 1;
else if (gotsp) {
gotsp = 0;
}
}
}
}
return linect;
}
²âÊÔc
#include <stdlib.h>
int main(int argc,char *argv[])
{
u_long row;
row= file_wc("test.unl");
printf("%d\n",row);
return 0;
} ......
linux c ¶ÁÈ¡ÎļþÐÐÊý²ÎÕÕwc ϵͳÃüÁî±àдµÄº¯ÊýÈçÏ£º
#include <fcntl.h>
#include <stdlib.h>
#define MAXBSIZE 65536
u_long file_wc(char *file)
{
register u_char *p;
register short gotsp;
register int ch, len;
register u_long linect, charct;
int fd;
u_char buf[MAXBSIZE];
if (file) {
if ((fd = open(file, O_RDONLY, 0)) < 0)
return -1;
for (gotsp = 1; len = read(fd, buf, MAXBSIZE);) {
if (len == -1)
return -1;
charct += len;
for (p = buf; len--;) {
ch = *p++;
if (ch == '\n')
++linect;
if (isspace(ch))
gotsp = 1;
else if (gotsp) {
gotsp = 0;
}
}
}
}
return linect;
}
²âÊÔc
#include <stdlib.h>
int main(int argc,char *argv[])
{
u_long row;
row= file_wc("test.unl");
printf("%d\n",row);
return 0;
} ......
£££££££££££££££££££££££££££££££££££££££££££
LinuxmineÊÕ¼¯ÕûÀí¡¡ ×÷Õߣºlinux±¦¿â (http://www.linuxmine.com)¡¡ ʱ¼ä£º2006-10-11
£££££££££££££££££££££££££££££££££££££££££££
C ÊÇËùÓа汾µÄUNIXÉϵÄϵͳÓïÑÔ.
C ÔÚ¹ýÈ¥µÄ¶þÊ®ÄêÖÐÓÐÁ˺ܴóµÄ·¢Õ¹. ÔÚ80Äê´úÄ©ÆÚÃÀ¹ú¹ú¼Ò±ê׼лá(American NationalStandards Institute)·¢²¼ÁËÒ»¸ö±»³ÆÎª ANSI C µÄ C ÓïÑÔ±ê×¼.Õâ¸ü¼Ó±£Ö¤Á˽«À´ÔÚ²»Í¬Æ½Ì¨É쵀 C µÄÒ»ÖÂÐÔ. ÔÚ80Äê´ú»¹³öÏÖÁËÒ»ÖÖ C µÄÃæÏò¶ÔÏóµÄÀ©Õ¹³ÆÎª C++.
Linux ÉÏ¿ÉÓÃµÄ C ±àÒëÆ÷ÊÇ GNU C ±àÒëÆ÷, Ëü½¨Á¢ÔÚ×ÔÓÉÈí¼þ»ù½ð»áµÄ±à³ÌÐí¿ÉÖ¤µÄ»ù´¡ÉÏ, Òò´Ë¿ÉÒÔ×ÔÓÉ·¢²¼. ÄãÄÜÔÚ Linux µÄ·¢ÐйâÅÌÉÏÕÒµ½Ëü.
Ëæ Slackware Linux ·¢ÐÐµÄ GNU C ±àÒëÆ÷(GCC)ÊÇÒ»¸öÈ«¹¦ÄÜµÄ ANSI C ¼æÈݱàÒëÆ÷. Èç¹ûÄãÊìϤÆäËû²Ù×÷ϵͳ»òÓ²¼þƽ̨ÉϵÄÒ»ÖÖ C ±àÒëÆ÷, Ä㽫ÄÜºÜ¿ìµØÕÆÎÕ GCC. ÕâºÍjavaÔÚÃüÁîÐÐÏÂ
±àÒëÒ²ºÜÀàËÆÎÒÃǽ«ÔÚÏÂÃæ½éÉÜÈçºÎʹÓà GCC ºÍһЩ GCC ±àÒëÆ÷×î³£ÓõÄÑ¡Ïî.
¸ñʽ gcc [option] [sourcefilename]
gccµÄÑ¡ÏîÊ®·Ö·±¶à,´óÔ¼ÓÐÉϰÙÖÐ,²»¹ýƽʱ³£ÓõIJ»ÊǷdz£¶à,ÎÒÃǽ« ......
£££££££££££££££££££££££££££££££££££££££££££
LinuxmineÊÕ¼¯ÕûÀí¡¡ ×÷Õߣºlinux±¦¿â (http://www.linuxmine.com)¡¡ ʱ¼ä£º2006-10-11
£££££££££££££££££££££££££££££££££££££££££££
C ÊÇËùÓа汾µÄUNIXÉϵÄϵͳÓïÑÔ.
C ÔÚ¹ýÈ¥µÄ¶þÊ®ÄêÖÐÓÐÁ˺ܴóµÄ·¢Õ¹. ÔÚ80Äê´úÄ©ÆÚÃÀ¹ú¹ú¼Ò±ê׼лá(American NationalStandards Institute)·¢²¼ÁËÒ»¸ö±»³ÆÎª ANSI C µÄ C ÓïÑÔ±ê×¼.Õâ¸ü¼Ó±£Ö¤Á˽«À´ÔÚ²»Í¬Æ½Ì¨É쵀 C µÄÒ»ÖÂÐÔ. ÔÚ80Äê´ú»¹³öÏÖÁËÒ»ÖÖ C µÄÃæÏò¶ÔÏóµÄÀ©Õ¹³ÆÎª C++.
Linux ÉÏ¿ÉÓÃµÄ C ±àÒëÆ÷ÊÇ GNU C ±àÒëÆ÷, Ëü½¨Á¢ÔÚ×ÔÓÉÈí¼þ»ù½ð»áµÄ±à³ÌÐí¿ÉÖ¤µÄ»ù´¡ÉÏ, Òò´Ë¿ÉÒÔ×ÔÓÉ·¢²¼. ÄãÄÜÔÚ Linux µÄ·¢ÐйâÅÌÉÏÕÒµ½Ëü.
Ëæ Slackware Linux ·¢ÐÐµÄ GNU C ±àÒëÆ÷(GCC)ÊÇÒ»¸öÈ«¹¦ÄÜµÄ ANSI C ¼æÈݱàÒëÆ÷. Èç¹ûÄãÊìϤÆäËû²Ù×÷ϵͳ»òÓ²¼þƽ̨ÉϵÄÒ»ÖÖ C ±àÒëÆ÷, Ä㽫ÄÜºÜ¿ìµØÕÆÎÕ GCC. ÕâºÍjavaÔÚÃüÁîÐÐÏÂ
±àÒëÒ²ºÜÀàËÆÎÒÃǽ«ÔÚÏÂÃæ½éÉÜÈçºÎʹÓà GCC ºÍһЩ GCC ±àÒëÆ÷×î³£ÓõÄÑ¡Ïî.
¸ñʽ gcc [option] [sourcefilename]
gccµÄÑ¡ÏîÊ®·Ö·±¶à,´óÔ¼ÓÐÉϰÙÖÐ,²»¹ýƽʱ³£ÓõIJ»ÊǷdz£¶à,ÎÒÃǽ« ......
¼Ç“Linux³ÌÐòÉè¼ÆÈռǔ
µ±×Ô¼ºÎÞ·¨È¥Íê³É×Ô¼ºÏëÏñµÄÊÂÇéʱ£¬ÎҾͻá²ÉÈ¡´ëÊ©£¬Ö»ÒòΪÄÇÊÇÏëÏñÖ®ÖеÄÊÂÇé¡£
——Ï׸øÎªÎ´À´·Ü¶·µÄÄãÎÒËû£¨Ëý£©
×î½üLinuxºÜ»ð£¬ºÜ»ðµÄµØ·½×Ü»áÓкܶàÈË¡£ÎÒÒ²Ó¿ÈëÆäÖУ¬³ÉΪ´óº£ÖеÄÒ»·Ý×Ó¡£
²»Öª·½ÏòµÄÎÒ£¬¶«´³´³£¬Î÷ÅöÅö¡£ËäÓд´ÉË£¬¶àµÄ¸üÊÇÊÕ»ñ£»¶øÊÕ»ñµÄ³ýÁË֪ʶ£¬¸ü¶àµÄÊÇÒ»ÖÖ¼á³Ö£¬Ò»ÖÖÒãÁ¦¡£
ÓÐÈ˰ÑLinuxµ±×÷ÉúÃüµÄÒ»²¿·Ö£¬ÎÒ¿´ÁËÖ®ºóÐij±ÅìÅÈ£¬°ÑΨһµÄÎïÀí»ú»»³ÉÁËLinux£¬Ì½Ë÷£¬Ì½Ë÷¡£Ì½Ë÷µÄ·×ÜÊÇÒªÓÐЩ¿Ä¿ÄÅöÅö£¬»¹ºÃÓÐÅóÓÑÔÚ£¬Óа®ÈËÔÚ¡£Ò»Ê±µÄ¹Â¶ÀÓëÎÞÄΣ¬Ã»ÓÐÈÃ×Ô¼º·ÅÆú£¬Ö»ÊǸü¼ÓµÄ¼á¶¨£¬¸ü¼ÓµÄ¼áÇ¿¡£ÏëÆð×òÌì“ËÀÉñ´úÀí”Ò»護˵µÄ»°£ºÎÒ²¢·ÇÈÏΪ×Ô¼º»áÓ®ÔÚÕ½門ÖУ¬¶øÊÇ·ÇÓ®²»¿É£¬²Å»áÕ½門¡£
µ±ÎªÁËÆ½ÈÕµÄѧϰ£¬²»µÃ²»ÔÚLinuxÖа²×°ÐéÄâ»úÅÜXP¡£ÓÖÒ»´ÎÄÑÒÔÈÌÊÜÕûÌ쿪ÐéÄâ»úµÄÉú»î£¬»Øµ½ÁËWin7£¬³Ã»úºÍͬѧ“ħÊÞ”ÁËһϡ£ÓÃWin7µÄÄÇÒ»ÏÂÎç¸ÐÊÜÆÄÉî——ºÜÀÛ£¬ËäÈ»ÔÚWin7ÏÂÒ»Çж¼ºÜ·½±ã£¬Ò²ÐíÖ»ÊÇϰ¹ßÎÊÌ⣬µ«ÎÒ¸üϲ»¶Ò»ÖÖ¼òµ¥µÄÉú»î¡£°²ÍêWin7ºóµÄµÚ4¸öСʱ£¬Linux¹éÀ´ÁË¡£
Ò²ÐíWinºÍLinuxÖ»ÊÇÒ»ÖÖµ¥´¿µÄ²Ù×÷ϵͳ£¬Ö»ÊÇÒ ......
ÕâÀïÖ¸Äں˵İ汾ºÅµÄÃüÁî»úÖÆ
LinuxÄں˰汾ÓÐÁ½ÖÖ£ºÎȶ¨°æºÍ¿ª·¢°æ£¬Îȶ¨µÄÄں˾ßÓй¤Òµ¼¶µÄÇ¿¶È£¬¿ÉÒԹ㷺µØÓ¦ÓúͲ¿Êð£¬ÐµÄÎȶ¨ÄÚºËÏà¶ÔÓڽϾɵÄÖ»ÊÇÐÞÕýһЩbug»ò¼ÓÈëһЩеÄÇý¶¯³ÌÐò£¬¶ø¿ª·¢°æÄÚºËÓÉÓÚÒªÊÔÑé¸÷ÖÖ½â¾ö·½°¸£¬ËùÒԱ仯ºÜ¿ì¡£
LinuxÄں˵ÄÃüÁî»úÖÆ£º
num.num.num
ÆäÖеÚÒ»¸öÊý×ÖÊÇÖ÷°æ±¾ºÅ£¬µÚ¶þ¸öÊý×ÖÊǴΰ汾ºÅ£¬µÚÈý¸öÊý×ÖÊÇÐÞ¶©°æ±¾ºÅ£¬Èç¹û´Î°æ±¾ºÅÊÇżÊý£¬ÄÇô¸ÃÄں˾ÍÊÇÎȶ¨°æµÄ£¬Èç¹ûÊÇÆæÊý£¬ÔòÊÇ¿ª·¢°æ±¾µÄ£¬Í·Á½¸öÊý×ÖºÏÔÚÒ»Æë¿ÉÒÔÃèÊöÄÚºËϵÁС£
²é¿´linuxÄÚºË.
uname -a
È磺
linux@linux-desktop:/$ uname -a
Linux linux-desktop 2.6.32-22-generic #33-Ubuntu SMP Wed Apr 28 13:27:30 UTC 2010 i686 GNU/Linux
²é¿´linuxÄں˰汾ºÅ:
uname -r
È磺
linux@linux-desktop:/$ uname -r
2.6.32-22-generic
......
20010-05-19
³£ÓÃÃüÁîÕûÀíÈçÏ£º
²é¿´CPUÐÅÏ¢£º
$ cat /proc/cpuinfo
²é¿´°å¿¨ÐÅÏ¢£º
$ cat /proc/pci
²é¿´PCIÐÅÏ¢£º
$ lspci
(Ïà±Ècat /proc/pci¸üÖ±¹Û£©
²é¿´ÄÚ´æÐÅÏ¢£º
$ cat /proc/meminfo
²é¿´USBÉ豸£º
$ cat /proc/bus/usb/devices
²é¿´¼üÅ̺ÍÊó±ê:
$ cat /proc/bus/input/devices
²é¿´ÏµÍ³Ó²ÅÌÐÅÏ¢ºÍʹÓÃÇé¿ö£º
$ fdisk & disk - l & df
²é¿´¸÷É豸µÄÖжÏÇëÇó(IRQ):
$ cat /proc/interrupts
²é¿´ÏµÍ³Ìåϵ½á¹¹£º
$ uname -a
dmidecode²é¿´Ó²¼þÐÅÏ¢£¬°üÀ¨bios¡¢cpu¡¢ÄÚ´æµÈÐÅÏ¢
dmesg | more ²é¿´Ó²¼þÐÅÏ¢
¶ÔÓÚ“/proc”ÖÐÎļþ¿ÉʹÓÃÎļþ²é¿´ÃüÁîä¯ÀÀÆäÄÚÈÝ£¬ÎļþÖаüº¬ÏµÍ³Ìض¨ÐÅÏ¢£º
Cpuinfo Ö÷»úCPUÐÅÏ¢
Dma Ö÷»úDMAͨµÀÐÅÏ¢
Filesystems ÎļþϵͳÐÅÏ¢
Interrupts Ö÷»úÖжÏÐÅÏ¢
Ioprots Ö÷»úI/O¶Ë¿ÚºÅÐÅÏ¢
Meninfo Ö÷»úÄÚ´æÐÅÏ¢
Version LinuxÄÚ´æ°æ±¾ÐÅÏ¢
ÁíÍâ£¬Ó ......
¹²ÏíÄÚ´æ¿ÉÒÔ˵ÊÇ×îÓÐÓõĽø³Ì¼äͨÐÅ·½Ê½£¬Ò²ÊÇ×î¿ìµÄIPCÐÎʽ¡£Á½¸ö²»Í¬½ø³ÌA¡¢B¹²ÏíÄÚ´æµÄÒâ˼ÊÇ£¬Í¬Ò»¿éÎïÀíÄÚ´æ±»Ó³Éäµ½½ø³ÌA¡¢B¸÷×ԵĽø³ÌµØÖ·¿Õ¼ä¡£½ø³ÌA¿ÉÒÔ¼´Ê±¿´µ½½ø³ÌB¶Ô¹²ÏíÄÚ´æÖÐÊý¾ÝµÄ¸üУ¬·´Ö®ÒàÈ»¡£ÓÉÓÚ¶à¸ö½ø³Ì¹²Ïíͬһ¿éÄÚ´æÇøÓò£¬±ØÈ»ÐèҪijÖÖͬ²½»úÖÆ£¬»¥³âËøºÍÐźÅÁ¿¶¼¿ÉÒÔ¡£
²ÉÓù²ÏíÄÚ´æÍ¨ÐŵÄÒ»¸öÏÔ¶øÒ×¼ûµÄºÃ´¦ÊÇЧÂʸߣ¬ÒòΪ½ø³Ì¿ÉÒÔÖ±½Ó¶ÁдÄڴ棬¶ø²»ÐèÒªÈκÎÊý¾ÝµÄ¿½±´¡£¶ÔÓÚÏñ¹ÜµÀºÍÏûÏ¢¶ÓÁеÈͨÐÅ·½Ê½£¬ÔòÐèÒªÔÚÄں˺ÍÓû§¿Õ¼ä½øÐÐËĴεÄÊý¾Ý¿½±´£¬¶ø¹²ÏíÄÚ´æÔòÖ»¿½±´Á½´ÎÊý¾Ý[1]£ºÒ»´Î´ÓÊäÈëÎļþµ½¹²ÏíÄÚ´æÇø£¬ÁíÒ»´Î´Ó¹²ÏíÄÚ´æÇøµ½Êä³öÎļþ¡£Êµ¼ÊÉÏ£¬½ø³ÌÖ®¼äÔÚ¹²ÏíÄÚ´æÊ±£¬²¢²»×ÜÊǶÁдÉÙÁ¿Êý¾Ýºó¾Í½â³ýÓ³É䣬ÓÐеÄͨÐÅʱ£¬ÔÙÖØÐ½¨Á¢¹²ÏíÄÚ´æÇøÓò¡£¶øÊDZ£³Ö¹²ÏíÇøÓò£¬Ö±µ½Í¨ÐÅÍê±ÏΪֹ£¬ÕâÑù£¬Êý¾ÝÄÚÈÝÒ»Ö±±£´æÔÚ¹²ÏíÄÚ´æÖУ¬²¢Ã»ÓÐд»ØÎļþ¡£¹²ÏíÄÚ´æÖеÄÄÚÈÝÍùÍùÊÇÔÚ½â³ýÓ³Éäʱ²Åд»ØÎļþµÄ¡£Òò´Ë£¬²ÉÓù²ÏíÄÚ´æµÄͨÐÅ·½Ê½Ð§ÂÊÊǷdz£¸ßµÄ¡£
LinuxµÄ2.2.xÄÚºËÖ§³Ö¶àÖÖ¹²ÏíÄڴ淽ʽ£¬Èçmmap()ϵͳµ÷Óã¬Posix¹²ÏíÄڴ棬ÒÔ¼°ÏµÍ³V¹²ÏíÄÚ´æ¡£linux·¢Ðа汾ÈçRedhat 8.0Ö§³Ömmap()ϵͳµ÷Óü°ÏµÍ³V¹²ÏíÄڴ棬µ«»¹Ã»ÊµÏÖPosix¹²ÏíÄڴ棬±¾Î ......