मानक लिनक्स libs में कोई फ़ंक्शन (या इंटरफ़ेस; ioctl, netlink इत्यादि) है जो वर्तमान माउंट को कर्नेल से सीधे पार्सिंग/proc के बिना वापस कर देगा? strace
माउंट कमांड में, ऐसा लगता है कि यह/procमाउंट पॉइंट प्राप्त करने के लिए लिनक्स फ़ंक्शन
उत्तर
में इस जानकारी को सूचीबद्ध करने के लिए कोई सिस्कल नहीं है; इसके बजाय, आप इसे फ़ाइल में देख सकते हैं /etc/mtab
mtab अधिकांश प्रणालियों पर केवल एक symlink/proc/माउंट है। – tMC
सिम्लिंक या हार्ड लिंक? मुझे याद है कि पुराने दिनों में एमटीएबी विश्वसनीय नहीं था ... –
@ टीएमसी: '/ proc/mounts' एक कार्यान्वयन विस्तार है। '/ etc/mtab' एक मानक फ़ाइल है जिसे आप लगभग किसी भी यूनिक्स-जैसी प्रणाली पर पाएंगे। मैंने जांच नहीं की लेकिन मुझे लगता है कि यह मानक का हिस्सा है। तो आप इस पर भरोसा कर सकते हैं। और मैं "ज्यादातर सिस्टम पर" नहीं कहूंगा। मेरे उबंटू और ओपनएसयूएसई सिस्टम में, यह एक सादा फाइल है। मेरे पास '/ proc/mounts' है लेकिन यह एक लिंक है :-) –
क्या कोई कारण है कि आप getmntent
libc लाइब्रेरी कॉल का उपयोग नहीं करेंगे? मुझे एहसास है कि यह 'सब इन वन' सिस्टम कॉल के समान नहीं है, लेकिन इसे आपको प्रासंगिक जानकारी प्राप्त करने की अनुमति देनी चाहिए।
#include <stdio.h>
#include <stdlib.h>
#include <mntent.h>
int main(void)
{
struct mntent *ent;
FILE *aFile;
aFile = setmntent("/proc/mounts", "r");
if (aFile == NULL) {
perror("setmntent");
exit(1);
}
while (NULL != (ent = getmntent(aFile))) {
printf("%s %s\n", ent->mnt_fsname, ent->mnt_dir);
}
endmntent(aFile);
}
मेरे पास एक एम्बेडेड सिस्टम है जो बूट के दौरान इस जानकारी का उपयोग कर सकता था; पहले/proc घुड़सवार था। – tMC
'/ proc/mounts' के बजाय' df' और 'माउंट' दोनों '/ proc/self/mountinfo' का उपयोग करें, लेकिन परिणाम वही है। –
ध्यान रखें कि 'getmntent' थ्रेड सुरक्षित नहीं है। 'Getmntent_r' (जीएनयू एक्सटेंशन) है। –
http://stackoverflow.com/questions/5095976/mount-system-call – Satish
@Satish कि mounts एक filesystem- यह _current mounts_ – tMC
वापस नहीं करता है तुम क्यों '/ proc /' से बचने के लिए चाहते हैं? ? लिनक्स के तहत, ऐसी जानकारी पुनर्प्राप्त करने का पसंदीदा तरीका है! और यह भी बहुत आसान है !! –