²Ù×÷ϵͳµÄÒ»¸ö¾µäÎÊÌâÊÇ"Éú²úÕß-Ïû·ÑÕß"ÎÊÌâ, ÕâÉæ¼°Í¬²½ÐźÅÁ¿ºÍ»¥³âÐźÅÁ¿µÄÓ¦ÓÃ, ÔÚÕâÀï,ÎÒÓÃÏ̵߳Äͬ²½ºÍ»¥³âÀ´ÊµÏÖ.
/*
* author ÕÅÎÄ
* 2008/06/20
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <semaphore.h>
#define N 2 // Ïû·ÑÕß»òÕßÉú²úÕßµÄÊýÄ¿
#define M 10 // »º³åÊýÄ¿
int in = 0; // Éú²úÕß·ÅÖòúÆ·µÄλÖÃ
int out = 0; // Ïû·ÑÕßÈ¡²úÆ·µÄλÖÃ
int buff[M] = {0}; // »º³å³õʼ»¯Îª0£¬ ¿ªÊ¼Ê±Ã»ÓвúÆ·
sem_t empty_sem; // ͬ²½ÐźÅÁ¿£¬ µ±ÂúÁËʱ×èÖ¹Éú²úÕ߷ŲúÆ·
sem_t full_sem; // ͬ²½ÐźÅÁ¿£¬ µ±Ã»²úƷʱ×èÖ¹Ïû·ÑÕßÏû·Ñ
pthread_mutex_t mutex; // »¥³âÐźÅÁ¿£¬ Ò»´ÎÖ»ÓÐÒ»¸öÏ̷߳ÃÎÊ»º³å
int product_id = 0; //Éú²úÕßid
int prochase_id = 0; //Ïû·ÑÕßid
/* ´òÓ¡»º³åÇé¿ö */
void print()
{
int i;
for(i = 0; i < M; i++)
printf("%d ", buff[i]);
printf("\n");
}
/* Éú²úÕß·½·¨ */
void *product()
{
int id = ++produc ......
²Ù×÷ϵͳµÄÒ»¸ö¾µäÎÊÌâÊÇ"Éú²úÕß-Ïû·ÑÕß"ÎÊÌâ, ÕâÉæ¼°Í¬²½ÐźÅÁ¿ºÍ»¥³âÐźÅÁ¿µÄÓ¦ÓÃ, ÔÚÕâÀï,ÎÒÓÃÏ̵߳Äͬ²½ºÍ»¥³âÀ´ÊµÏÖ.
/*
* author ÕÅÎÄ
* 2008/06/20
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <semaphore.h>
#define N 2 // Ïû·ÑÕß»òÕßÉú²úÕßµÄÊýÄ¿
#define M 10 // »º³åÊýÄ¿
int in = 0; // Éú²úÕß·ÅÖòúÆ·µÄλÖÃ
int out = 0; // Ïû·ÑÕßÈ¡²úÆ·µÄλÖÃ
int buff[M] = {0}; // »º³å³õʼ»¯Îª0£¬ ¿ªÊ¼Ê±Ã»ÓвúÆ·
sem_t empty_sem; // ͬ²½ÐźÅÁ¿£¬ µ±ÂúÁËʱ×èÖ¹Éú²úÕ߷ŲúÆ·
sem_t full_sem; // ͬ²½ÐźÅÁ¿£¬ µ±Ã»²úƷʱ×èÖ¹Ïû·ÑÕßÏû·Ñ
pthread_mutex_t mutex; // »¥³âÐźÅÁ¿£¬ Ò»´ÎÖ»ÓÐÒ»¸öÏ̷߳ÃÎÊ»º³å
int product_id = 0; //Éú²úÕßid
int prochase_id = 0; //Ïû·ÑÕßid
/* ´òÓ¡»º³åÇé¿ö */
void print()
{
int i;
for(i = 0; i < M; i++)
printf("%d ", buff[i]);
printf("\n");
}
/* Éú²úÕß·½·¨ */
void *product()
{
int id = ++produc ......
#include <iostream>
#include <pwd.h>
#include <sys/types.h>
#include <stddef.h>
#include <string>
#include <list>
using namespace std;
void GetUser(list<string>& lsUser);
int main()
{
list<string> lsUser;
GetUser(lsUser);
cout << "all user name in current computer:" << endl;
list<string>::iterator it;
for (it = lsUser.begin(); it != lsUser.end(); it++)
{
cout << it->c_str()<< endl;
}
return 0;
}
void GetUser(list<string>& lsUser)
{
struct passwd* pstPwd = NULL;
setpwent();
while ( (pstPwd = getpwent()) != NULL )
{
lsUser.push_front(pstPwd->pw_name);
}
endpwent();
}
......
×ÔÓÉÈí¼þ Linux Ö®¸¸£ºÀîÄÉ˹·ÍÐÎÖ×È(Linus Torvalds)
¡¡¡¡µ¼Ó28ËêµÄ·ÒÀ¼ÇàÄêÀîÄÉ˹´´ÔìÁËÒ»¸öȫеÄÊÀ½ç£º¾ÍÊÇÒ»ÖÖÃûΪLinuxµÄ²Ù×÷ϵͳ¡£ËüËù²úÉúµÄÁ¦Á¿¾ö¶¨Á˱à³ÌÁìÓòµÄзÕΧ£¬ÕýÈçÎÒÃǵĻ·¾³¾ö¶¨Á˶¯Ö²ÎïµÄÌØÐÔÒ»Ñù¡£´´Ôì¼ò½àÓÅÑŵijÌÐò£¬Ð´³ö¸É¾»¶øÎÞÈß³¤µÄ´úÂ룬»òÕßÊdz¬Ò»Á÷µÄ³ÌÐò£¬¾Í×ãÒÔÓ®µÃͬÐÐÃǵÄ×ð¾´ºÍÍÆ³ç¡£¶øÀîÄÉ˹×ߵøüÔ¶£¬Ëû²»µ«ÖØÐ¶¨ÒåÁËÒ»Á÷³ÌÐò¡¢´úÂëºÍÈí¼þµÄ»ù×¼£¬¶øÇÒÂõÏòÁË“ºÚ¿Í”µÄÖÕ¼«¸ß¶È£¬¿ª´´ÁËÁíÒ»¸ö»¥ÁªÍøµÄ´«Ææ¹ÊÊ¡£
¡¡¡¡21ÊÀ¼ÍÊÇ×ÔÓÉÈí¼þµÄÊÀ¼Í
¡¡¡¡ºÃÏñÊÇ̸ÂÛÃÎÏ룬ÓÖºÃÏñÊÇ“Xµµ°¸”ÖеÄÒ»¶ÎÇé½Ú¡£Ò»¸ö21ËêµÄ·ÒÀ¼´óѧÉú£¬ÔÚѧÉúËÞÉáÀïдÁËÒ»¸ö²Ù×÷ϵͳµÄÄں˗—Linux£¬È»ºó¹«²¼ÓÚÖÚ£¬ÎüÒýÁ˳ÉǧÉÏÍòµÄ³ÌÐòԱΪ֮Ôö²¹¡¢Ð޸ĺʹ«²¥£¬¶Ì¶Ì¼¸Äê¾ÍÓµÓÐÁË1000¶àÍòµÄÓû§£¬³ÉΪµØÇòÉϳɳ¤×î¿ìµÄÈí¼þ¡£
¡¡¡¡¾ÍÔÚÁ½Äêǰ£¬ÄãÈ¥ÎÊÒ»¸ö³ÌÐòÔ±×ÔÓÉÈí¼þµÄǰ¾°£¬Ëû¿Ï¶¨»á¸æËßÄ㣬×ÔÓÉÈí¼þÓÐÒâ˼£¬µ«ÄÑ³ÉÆøºò¡£¶ø½ñ£¬ÎÞÊýµÄ³ÌÐòÔ±¶¼½«Linux×÷Ϊ×Ô¼ºÊ×ÒªµÄ×·Ç󣬷ñÔò²»×ãÒÔÖ¤Ã÷×Ô¼ºµÄ¾³½ç¡£¾ÍÔÚÒ»Äêǰ£¬ÄãÈ¥ÎÊÒ»¸ö´ó¹«Ë¾µÄÐÅÏ¢Ö÷¹ÜÓйØ×ÔÓÉÈí¼þµÄ¿ÉÐÐÐÔ£¬Ëû¿Ï¶¨»á¸æËßÄ㣬Õâ¶«Î÷Ëû²»»á¡¢Ò²²»¸ÒÓã¬ÒòΪȱ· ......
¼Ç¼³£ÓòÙ×÷£º
Îļþ¼°Îļþ¼ÐÏà¹Ø
=======================================================================
Îļþ²Ù×÷(rm)£»
Îļþ¼Ð²Ù×÷£¨rmdir ɾ³ý¿ÕÎļþ£¬rm -rf Ŀ¼Ãûɾ³ý·Ç¿ÕÎļþ¼Ð£©;
ÎļþÒÆ¶¯£ºmv cp¶¼¿ÉÒÔ£»
½âѹËõ£ºtar
¸ñʽ£º tar Ñ¡Ïî ÎļþĿ¼Áбí
¹¦ÄÜ£º ¶ÔÎļþĿ¼½øÐдò°ü±¸·Ý
Ñ¡Ï
-c ½¨Á¢ÐµĹ鵵Îļþ
-r Ïò¹éµµÎļþĩβ׷¼ÓÎļþ
-x ´Ó¹éµµÎļþÖнâ³öÎļþ
-O ½«Îļþ½â¿ªµ½±ê×¼Êä³ö
-v ´¦Àí¹ý³ÌÖÐÊä³öÏà¹ØÐÅÏ¢
-f ¶ÔÆÕͨÎļþ²Ù×÷
-z µ÷ÓÃgzipÀ´Ñ¹Ëõ¹éµµÎļþ£¬Óë-xÁªÓÃʱµ÷ÓÃgzipÍê³É½âѹËõ
-Z µ÷ÓÃcompressÀ´Ñ¹Ëõ¹éµµÎļþ£¬Óë-xÁªÓÃʱµ÷ÓÃcompressÍê³É½âѹ
======================================================================= ......
ÍøÂçÎļþϵͳ£¨NFS£¬Network File System£©ÊÇÒ»ÖÖ½«Ô¶³ÌÖ÷»úÉϵķÖÇø£¨Ä¿Â¼£©¾ÍøÂç¹ÒÔØµ½±¾µØÏµÍ³µÄÒ»ÖÖ»úÖÆ£¬Í¨¹ý¶ÔÍøÂçÎļþϵͳµÄÖ§³Ö£¬Óû§¿ÉÒÔÔÚ±¾µØÏµÍ³ÉÏÏñ²Ù×÷±¾µØ·ÖÇøÒ»ÑùÀ´¶ÔÔ¶³ÌÖ÷»úµÄ¹²Ïí·ÖÇø£¨Ä¿Â¼£©½øÐвÙ×÷¡£
ÔÚǶÈëʽLinux µÄ¿ª·¢¹ý³ÌÖУ¬¿ª·¢ÕßÐèÒªÔÚLinux ·þÎñÆ÷ÉϽøÐÐËùÓеÄÈí¼þ¿ª·¢£¬½»²æ±àÒëºó£¬Í¨ÓÃFTP ·½Ê½½«¿ÉÖ´ÐÐÎļþÏÂÔØµ½Ç¶ÈëʽϵͳÔËÐУ¬µ«ÕâÖÖ·½Ê½²»µ«Ð§ÂʵÍÏ£¬ÇÒÎÞ·¨ÊµÏÖÔÚÏߵĵ÷ÊÔ¡£Òò´Ë£¬¿ÉÒÔͨ¹ý½¨Á¢NFS£¬°ÑLinux ·þÎñÆ÷ÉϵÄÌØ¶¨·ÖÇø¹²Ïíµ½´ýµ÷ÊÔµÄǶÈëʽĿ±êϵͳÉÏ£¬¾Í¿ÉÒÔÖ±½ÓÔÚǶÈëʽĿ±êϵͳÉϲÙ×÷Linux ·þÎñÆ÷£¬Í¬Ê±¿ÉÒÔÔÚÏß¶Ô³ÌÐò½øÐе÷ÊÔºÍÐ޸쬴ó´óµÄ·½±ãÁËÈí¼þµÄ¿ª·¢¡£Òò´Ë£¬NFS µÄÊÇǶÈëʽLinux ¿ª·¢µÄÒ»¸öÖØÒªµÄ×é³É²¿·Ö£¬±¾²¿·ÖÄÚÈݽ«Ïêϸ˵Ã÷ÈçºÎÅäÖÃǶÈëʽLinux µÄNFS ¿ª·¢»·¾³¡£
ǶÈëʽLinux µÄNFS ¿ª·¢»·¾³µÄʵÏÖ°üÀ¨Á½¸ö·½Ã棺һÊÇLinux ·þÎñÆ÷¶ËµÄNFS ·þÎñÆ÷Ö§³Ö£»¶þÊÇǶÈëʽĿ±êϵͳµÄNFS ¿Í»§¶ËµÄÖ§³Ö¡£Òò´Ë£¬NFS ¿ª·¢»·¾³µÄ½¨Á¢ÐèÒªÅäÖÃlinux ·þÎñÆ÷¶ËºÍǶÈëʽĿ±êϵͳ¶Ë¡£
Ò»¡¢Linux ·þÎñÆ÷¶ËNFS ·þÎñÆ÷µÄÅäÖÃ
ÒÔroot Éí·ÝµÇ½Linux ·þÎñÆ÷£¬±à¼/etc Ŀ¼ÏµĹ²ÏíĿ¼ÅäÖÃÎļþexports£¬Ö¸¶¨¹²ÏíĿ¼¼°È¨ÏÞ ......
ÔÚLinux ÖУ¬¶¯Ì¬¿âµÄËÑË÷·¾¶³ýÁËĬÈϵÄËÑË÷·¾¶Í⣬»¹¿Éͨ¹ýÈýÖÖ·½·¨À´Ö¸¶¨£º·½·¨Ò»£ºÔÚÅäÖÃÎļþ/etc/ld.so.confÖÐÖ¸¶¨¶¯Ì¬¿âËÑË÷·¾¶£»·½·¨¶þ£ºÍ¨¹ý»·¾³±äÁ¿LD_LIBRARY_PATHÖ¸¶¨¶¯Ì¬¿âËÑË÷·¾¶£»·½·¨Èý£ºÔÚ±àÒëÄ¿±ê´úÂëʱָ¶¨¸Ã³ÌÐòµÄ¶¯Ì¬¿âËÑË÷·¾¶¡£
ÖÚËùÖÜÖª£¬Linux¶¯Ì¬¿âµÄĬÈÏËÑË÷·¾¶ÊÇ/libºÍ/usr/lib¡£¶¯Ì¬¿â±»´´½¨ºó£¬Ò»°ã¶¼¸´ÖƵ½ÕâÁ½¸öĿ¼ÖС£µ±³ÌÐòÖ´ÐÐʱÐèҪij¶¯Ì¬¿â£¬²¢ÇҸö¯ ̬¿â»¹Î´¼ÓÔØµ½ÄÚ´æÖУ¬Ôòϵͳ»á×Ô¶¯µ½ÕâÁ½¸öĬÈÏËÑË÷·¾¶ÖÐÈ¥²éÕÒÏàÓ¦µÄ¶¯Ì¬¿âÎļþ£¬È»ºó¼ÓÔØ¸ÃÎļþµ½ÄÚ´æÖУ¬ÕâÑù³ÌÐò¾Í¿ÉÒÔʹÓøö¯Ì¬¿âÖеĺ¯Êý£¬ÒÔ¼°¸Ã¶¯Ì¬¿âµÄÆäËü×ÊÔ´ÁË¡£ÔÚLinux ÖУ¬¶¯Ì¬¿âµÄËÑË÷·¾¶³ýÁËĬÈϵÄËÑË÷·¾¶Í⣬»¹¿ÉÒÔͨ¹ýÒÔÏÂÈýÖÖ·½·¨À´Ö¸¶¨¡£
·½·¨Ò»£ºÔÚÅäÖÃÎļþ/etc/ld.so.confÖÐÖ¸¶¨¶¯Ì¬¿âËÑË÷·¾¶¡£
¿ÉÒÔͨ¹ý±à¼ÅäÖÃÎļþ/etc/ld.so.confÀ´Ö¸¶¨¶¯Ì¬¿âµÄËÑË÷·¾¶£¬¸ÃÎļþÖÐÿÐÐΪһ¸ö¶¯Ì¬¿âËÑË÷·¾¶¡£Ã¿´Î±à¼Íê¸ÃÎļþºó£¬¶¼±ØÐëÔËÐÐÃüÁîldconfigʹÐ޸ĺóµÄÅäÖÃÉúЧ¡£ÎÒÃÇͨ¹ýÀý1À´ËµÃ÷¸Ã·½·¨¡£
Àý1£º
ÎÒÃÇͨ¹ýÒÔÏÂÃüÁîÓÃÔ´³ÌÐòpos_conf.c£¨¼û³ÌÐò1£©À´´´½¨¶¯Ì¬¿â libpos.so£¬Ïêϸ´´½¨¹ý³ÌÇë²Î¿¼ÎÄ[1]¡£
# gcc -c pos_conf.c
&nb ......