我想在OSX上开发示例框架,要求在任何时候框架都应该只由单个客户端使用,我不知道如何实现这一点?是他们的任何API来检测框架正在使用的天气?我们可以为此使用一些与文件相关的API吗?我已经看到了一个Windows示例,它们在哪里检测dylib的使用情况 遵循API的?? CreateFileMappingW MapViewOfFile OpenFileMappingW
有没有人遇到过这种情况?
答案 0 :(得分:2)
您可以使用lsof命令。它将返回打开文件的列表。
在没有任何选项的情况下,lsof会列出属于的所有打开文件 所有活跃的过程。
NSTask* task = [[NSTask alloc] init];
NSPipe* pipe = [[NSPipe alloc] init];
NSArray* args = [NSArray arrayWithObjects: @"-c", @"lsof | grep -i some.framework | wc -l",nil];
[task setLaunchPath: @"/bin/sh"];
[task setArguments: args];
[task setStandardOutput: pipe];
[task setStandardError: pipe];
[task setStandardInput: [NSPipe pipe]];
[task launch];
[task waitUntilExit];
NSFileHandle* file = [pipe fileHandleForReading];
NSString* result = [[NSString alloc] initWithData: [file readDataToEndOfFile] encoding: NSASCIIStringEncoding];
NSLog(@"%@",result);
[result release];
[task release];
[pipe release];