क्या एक (परमाणु) ऑपरेशन में अलग-अलग सेमाफोर पर कई वेतन वृद्धि/कमी करने का कोई तरीका है?

मैंने देखा कि SysV में ऐसा करना संभव है और मैं सोच रहा था कि POSIX API का उपयोग करके ऐसा करने का कोई तरीका है या नहीं।

यहाँ मैं क्या करना चाहता हूँ (SYSV में):

  sem[0].sem_num = 0;
  sem[0].sem_op  = 1;
  sem[0].sem_flg = 0;

  sem[1].sem_num = 1;
  sem[1].sem_op  = -1;
  sem[1].sem_flg = 0;

  semop(semid, sem, 2)

क्या पॉज़िक्स में ऐसा करने का कोई तरीका है?

2
Bers 28 पद 2020, 21:43
1
पॉज़िक्स में semop() है
 – 
vmt
28 पद 2020, 21:55
आपके द्वारा संपादित करने के बाद भी, semop() पॉज़िक्स है। यदि आप मानक Application writers may confidently make use of an extension on all systems supporting the X/Open System Interfaces Extension को उद्धृत करते हुए XSI के बारे में सोच रहे हैं। क्या आपके पास एक वास्तविक प्रणाली है जहाँ आपके पास semaphore.h है लेकिन XSI सेमाफोर नहीं है? क्या आप साझा कर सकते हैं कि वह कौन सी प्रणाली है?
 – 
KamilCuk
28 पद 2020, 22:09
या यह है कि आप केवल XSI वाले (उनकी अन्य सुविधाओं के लिए, या मौजूदा कोड से मेल खाने के लिए) के बजाय <semaphore.h> सेमाफोर का उपयोग करना चाहते हैं?
 – 
Nate Eldredge
28 पद 2020, 22:23

1 उत्तर

सबसे बढ़िया उत्तर

क्या semaphore.h का उपयोग करके ऐसा करने का कोई तरीका है?

नहीं, यह संभव नहीं है।

क्या POSIX में ऐसा करने का कोई तरीका है?

आपके द्वारा पोस्ट किया गया कोड XSI एक्सटेंशन को POSIX में उपयोग कर रहा है। आम तौर पर, यहां तक ​​कि मानक भी कहता है कि यदि आप POSIX संगत प्लेटफॉर्म पर हैं, तो आप इस विश्वास के साथ XSI एक्सटेंशन का उपयोग कर सकते हैं कि यह उपलब्ध होगा।

2
KamilCuk 28 पद 2020, 22:51