我知道如何使用该kill(pid_t pid, int sig)函数将信号发送到C中的子进程.那么向线程发送信号呢?可能吗?.如果是这样,如何捕获"子"线程上的信号.例如,如果主线程向我发送终止信号,我怎么能在另一个线程中捕获它.
我正在使用解析xml文档的NSXMLParser.您必须设置每次解析器找到元素时我们将调用的委托.我看过的例子都将委托设置为创建的同一个类:
NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:filename];
[parser setDelegate: self];
Run Code Online (Sandbox Code Playgroud)
其他示例将委托设置为父级.如果我想要另一个类(与同一个类无关)来处理委托,该怎么办?这样做的语法是什么?
我做到了这一点,但它不起作用.
@interface Util : NSObject <NSXMLParserDelegate> {
//Some code here
}
//functions for the delegate and the implementation on the Util.m
//.
//.
//.
Run Code Online (Sandbox Code Playgroud)
谢谢你的回答.
我忘了说在调用代表时我假设它会是这样的:
[parser setDelegate:Util];
Run Code Online (Sandbox Code Playgroud)
我认为这知道要为同一个类设置委托,消息是:
[parser setDelegate:self];
Run Code Online (Sandbox Code Playgroud) 我对插座知之甚少但到目前为止我没有太大的问题.我实际上坚持如何知道对方何时完成发送消息.到目前为止我所拥有的是服务器端的while循环,它从套接字读取直到没有任何东西(或者应该这样做).这是代码:
char c[1024]; //buffer
inst much;
while(much = read(sockfd, &c, 1024) > 0) {
printf("read %d, clientSays> %s\n", much, c);
}
printf("reading, finished\n");
Run Code Online (Sandbox Code Playgroud)
因此,在客户端,我发送一个"hello world"消息,该消息实际上显示在服务器控制台上,但它不会打印"读取完成"消息,因此我认为它会等待另一条消息.
我认为当没有其他内容可读时,read函数会返回0,但我想情况并非如此
那么,我做错了什么?
实际上,在阅读了你的答案并仔细阅读了代码之后,我意识到这就是协议的用途.
当一方已经完成并且另一方应该开始写作时,我应该事先知道.也许添加一个最后一个字符,让我知道我已完成发送,或者为邮件添加前缀大小.
谢谢你的回答.
我正在尝试构建一个显示网络拓扑的应用程序,使用c或c ++.我有套接字的知识.我知道这是一个广泛的问题,细节很少.只是我没有找到任何东西开始.我不知道该怎么做.
我在GtkHButtonBox中有一个GtkButton,它没有显示我正在添加的图像.它只显示文字.这是代码:
GtkImage *image = (GtkImage *) gtk_image_new_from_file("Gateway-LT21-netbook-2-540x359");
GtkButton *button = (GtkButton *) gtk_button_new_with_label("test");
gtk_button_set_image(button, (GtkWidget *) image);
Run Code Online (Sandbox Code Playgroud)
有什么我想念的吗?
我想知道一个过程的状态.我想我可以使用等待系列功能但实际上我不想等待该过程,只需检查状态并继续.
我想要类似的东西
checkStatusOfProcess(&status);
if(status == WORKING) {
//do something
} else if(status == exited) {
//do something else
} else \\I dont care about other states
Run Code Online (Sandbox Code Playgroud) 我认为问题是不言自明的.
我知道exec运行在另一个进程上,所以如果我想要一个目录,我会做那样的事情.
int pid;
if((pid = fork()) != -1) {
if(!pid) {
execl("/bin/ls", "-a", "-l", (char *) 0);
} else {
wait(&status);
}
} else //error
Run Code Online (Sandbox Code Playgroud)
如果你想创建一个进程,那很好,但线程呢?我虽然冷杉创建线程然后exec函数,但这将使我刚刚创建的线程有两个进程
我想要一个显示输入值的网页(用PHP编写,因为它是我所知道的).我希望将该值传递给已经运行的ac程序.
我虽然使用套接字在两个进程之间进行通信,但我该如何设法做到这一点?如何使用fsockopen连接到本地套接字.
c ×8
process ×3
exec ×2
pthreads ×2
sockets ×2
delegates ×1
fork ×1
gtk ×1
interface ×1
ioctl ×1
ip-address ×1
networking ×1
nsxmlparser ×1
objective-c ×1
php ×1
topology ×1
wait ×1