The UNIX and Linux Forums  

Go Back   A UNIX és Linux Forums > Operációs rendszerek > HP-UX
.
google unix.com



HP-UX HP-UX (Hewlett Packard UNIX) a Hewlett-Packard saját végrehajtását a Unix operációs rendszer alapján Rendszer V.

Több, UNIX és Linux fórum témák Ön által talált Hasznos
Szál Thread Starter Fórum Válaszok Utolsó hozzászólás
Kerülje a másolatokat egy fájlt pssandeep A UNIX a dummies Kérdések és válaszok 7 03-26-2008 06:36 AM
AWK: Hogyan lehet elkerülni Rendszer sandeep_hi Shell programozás és Scripting 0 06-23-2006 07:01 AM
Hogyan lehet elkerülni historying parancsomra ting123 A UNIX a dummies Kérdések és válaszok 2 05-06-2006 05:58 AM
Kerülje a spam fenyő? a25khan A UNIX a dummies Kérdések és válaszok 1 12-13-2003 10:50 AM
hogyan lehet lezárni a billentyűzet használata nélkül zár parancs dianayun A UNIX a dummies Kérdések és válaszok 7 06-21-2002 07:05 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Téma eszközök Keresés a téma Rate Thread Megjelenítési módok
  #1 (permalink)  
Old 02-03-2008
Frank2004 Frank2004 is offline
Regisztrált felhasználó
  
 

Join Date: Jun 2004
Helyszín: Peking, Kína
Hozzászólások: 54
elkerülése semphore zár

fejlesztettük ki, a rendszer V semphore interfész, a kérelmet, az általános, mind a rendes munkát, csak ritkán okoz a holtpontról. Itt van néhány fontos sem_wait és sem_post csatoló, pls pont néhány javaslatot is rögzítette a holtpontról a probléma:
Kód:
int sem_wait_V(int id, struct sembuf  *sem_pv)
{

  sem_pv = new struct sembuf [1] ;

  if (sem_op(id,-1, sem_pv)<0)
    {
         delete sem_pv ;
     return -1;
    }

  delete sem_pv ;
 


  return 0;
}






int sem_post_V(int id, int sem_post_value_V, struct sembuf  *sem_pv)
{

 if ((sem_post_value_V = semctl(id,0,GETVAL,0)) <0)
	{
       	return -1; 
     	}
 if( sem_post_value_V > SEM_POST_LIMIT )
	{
	if( sem_post_value_V == SEM_POST_LIMIT + 1 )	return -1 ;
	return -1 ;
	}

 sem_pv = new struct sembuf [1] ; 
 
 if (sem_op(id,1,sem_pv)<0)
    {
     delete sem_pv ;
     return -1;
    }

 delete sem_pv ;

 return 0;
}



int sem_op(int id,int value, struct sembuf sem_pv[1] )
{
  int sem_value ,sem_value1; 


  sem_pv[0].sem_num = 0 ;
  sem_pv[0].sem_flg = 0 ;

  if ((sem_pv[0].sem_op =value) == 0)
	{
	printf("sem_op error: operator is zero !!!!!!!(%d)\n",id) ;
        return -1;
	}

if ((sem_value = semctl(id,0,GETVAL,0)) <0)
     		{
        	perror("semctl create GETVAL");
                return -1;
     		}

 again:;
  if (semop(id,&sem_pv[0],1)<0)
        {
         sched_yield() ;
         if(errno==EINTR) 
          {
                	if ((sem_value1 = semctl(id,0,GETVAL,0)) <0)
     	                	{
        	                   perror("semctl create GETVAL");
                                   return -1;
     		                }
                           else
                             {
                                 if (sem_value != sem_value1 )
                                     return -1;
                                  else
                                     goto again;
                            }
           }
         return -1;
        }    

  return  1;

}

Last edited by Frank2004; 02/03/2008 at 11:06 PM..
  #2 (permalink)  
Old 03-10-2009
Frank2004 Frank2004 is offline
Regisztrált felhasználó
  
 

Join Date: Jun 2004
Helyszín: Peking, Kína
Hozzászólások: 54
remélem választ, kösz.
Closed Thread

Könyvjelzõk

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Ki
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 01:24 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0