我想,因为它似乎在改变我的进程的名称ps
,并Activity Monitor
在运行时.我发现有几个笔记说没有可移植的方法(我不关心).
这是我尝试过的.这些方法都不适合我.
argv[0]
(似乎是在某些Unix系统上的方式)[[NSProcessInfo processInfo] setProcessName:@"someName"]
setprogname
(调用getprogname
返回我设置的名称,但这是无关紧要的)我还读到了一个被调用的函数setproctitle
,stdlib.h
如果它可用,应该定义它,但它不存在.
必须有一种方法可以实现这一点,因为QTKitServer-- QuickTime Player X的无面解码器 - 在其进程名称中具有相应的QuickTime Player的PID.
有没有人知道如何做到这一点?我非常喜欢使用Core Foundation或POSIXy方法来实现Objective-C方法.
谢谢,
马尔科
编辑:如果它有任何相关性,我使用的是Mac OS X 10.6.5和Xcode 3.2.5
简短问题
在服务器端处理通过Telnet发送的Ctrl-C事件的正确方法是什么?
长问题
在套接字上调用recv()之后,我想适当地处理一些情况.其中之一是在收到Ctrl-C时返回某个错误代码.检测到这种情况的正确方法是什么?以下工作,但它似乎不正确:
size_t recv_count;
static char ctrl_c[5] = {0xff, 0xf4, 0xff, 0xfd, 0x06};
recv_count = recv(socket, buffer, buffer_size, 0);
if (recv_count == sizeof(ctrl_c) &&
memcmp(buffer, ctrl_c, sizeof(ctrl_c) == 0)
{
return CTRL_C_RECEIVED;
}
Run Code Online (Sandbox Code Playgroud)
我在这个 UNIX Socket FAQ 的旁注中找到了对Ctrl-C的评论:
[...](顺便说一下,带外通常也用于ctrl-C).
据我所知,接收带外数据是使用recv()完成的,并将某个标志作为最后一个参数.但是,当我在上面的代码中使用recv()等待数据时,我无法同时读取带外数据.除此之外,我正在使用recv()获得一些没有oob-flag的东西.