كيف أحصل على اسم مضيف الخادم من دليل مثبت مع الكاكاو/OBJ-C؟
سؤال
حاليًا عندما أقوم بفتح ملف مع برنامجي ، يمكنني تحديد الملفات على خادم بالنقر فوق اسم الخادم في الشريط الجانبي في nsopenpanel ثم تحديد الملف. لا مشكلة ، هذا يعمل بشكل جيد لاستخدام الملف طالما تم تركيب الدليل المشترك. أحصل على مسار مثل "/volumes/sharename/filename.bla".
سؤالي هو كيف أحصل على اسم مضيف الخادم للكمبيوتر الذي جاء منه. على سبيل المثال ، إذا قمت بالنقر فوق الجهاز باستخدام اسم ServerName ضمن "مشترك" في nsopenpanel ، فكيف أحصل على serverName من "/volumes/sharename/filename.bla".
لقد نظرت إلى الكثير من الوثائق ولم أتمكن من العثور على حل لهذه المشكلة.
أي مساعدة نحو هذا سيكون موضع تقدير كبير. شكرًا لك.
المحلول
هذه ليست طريقة موضوعية للقيام بذلك ولكن في بعض الأحيان تستخدم popen(..)
يمكن أن تسمح لك بالاستيلاء على معلومات يمكنك تحليلها من أمر UNIX.
مثال
#include <stdio.h>
#include <string.h>
int main() {
FILE *fp = popen("df", "r"); // see man page for df
if (fp) {
char line[4096];
while (line == fgets(line, 4096, fp)) {
if (strstr(line, "/Volumes/SHARENAME")) { // You need the mount point
char host[256];
sscanf(line, "%s", host);
printf("Connected: %s\n", host);
}
}
pclose(fp);
}
return 0;
}