我想在 OSX 上开发示例框架,并要求该框架在任何时候都只能由单个客户端使用,我不知道如何实现这一点?他们是否有任何 API 来检测框架正在使用的天气?我们可以为此使用一些与文件相关的 API 吗?..我看过一个 Windows 示例,他们在其中使用以下 API 检测 dylib 的使用情况?CreateFileMappingW MapViewOfFile OpenFileMappingW
有没有人遇到过这样的场景??
我想在 OSX 上开发示例框架,并要求该框架在任何时候都只能由单个客户端使用,我不知道如何实现这一点?他们是否有任何 API 来检测框架正在使用的天气?我们可以为此使用一些与文件相关的 API 吗?..我看过一个 Windows 示例,他们在其中使用以下 API 检测 dylib 的使用情况?CreateFileMappingW MapViewOfFile OpenFileMappingW
有没有人遇到过这样的场景??
您可以使用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];