- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我目前正在做一个学习信号的项目,基本上我有一个客户端和一个服务器,服务器给出一个pid,我必须用一个字符串作为参数输入客户端,启动后,客户端将此字符串发送到服务器,服务器显示它。
到目前为止我所做的是将字符串转换为二进制,如果整数是 0 我发送 SIGUSR1 否则(如果它是 1)我发送 SIGUSR2,这样我想将二进制转换为我们拥有的字符串以前,但我想知道我该怎么做。
这是服务器的主要部分,如您所见,它显示了它的 pid(因此我们稍后可以用它启动客户端)并等待信号。一旦它捕获到一个它调用 my_sig(您将在本线程的后面找到)。
int main()
{
int pid;
pid = getpid();
printf("Server pid is: %d\n", pid);
if (signal(SIGUSR1, my_sig) == SIG_ERR)
{
printf("Error.\n");
exit(1);
}
if (signal(SIGUSR2, my_sig) == SIG_ERR)
{
printf("Error.\n");
exit(1);
}
while (1);
}
这是非常简单的 my_sig,您可以看到它是否接收到 SIGUSR1 作为信号,它显示 0,否则显示 1。
void my_sig(int param)
{
char *src;
char *dest;
if (param == SIGUSR1)
{
my_printf("0");
}
if (param == SIGUSR2)
{
my_printf("1");
}
}
所以归根结底,它所做的是逐个字符地以二进制字符显示客户端中给出的单词。
我如何使用它来显示我在客户端中输入的字符串?
谢谢大家,如果您需要任何精确度,请告诉我。
编辑:尽管我很想知道其他信号,但遗憾的是,对于这个项目我仅限于这些信号。
最佳答案
信号在很大程度上不适合这项任务,因为根据时间的不同,可能会丢失信息。
标准信号会丢失位和顺序。这些信号被单独命名(例如,SIGUSR1、SIGUSR2),并且不排队。也就是说,任何给定的标准信号在任何时候都只能有一个实例挂起。此外,他们的交付顺序不能保证,但实际上通常是从低到高。因此,如果我发送了您的进程 USR2、USR2、USR1、USR1、USR2、USR2 并且时机恰到好处,您的进程可能会收到一个 USR1,然后是一个 USR2。
实时信号会丢失您的顺序。这些信号在 SIGRTMIN 到 SIGRTMAX 范围内编号,它们排队,并且它们有定义的传递顺序。不幸的是,该订单是 lowest to highest因此提出了与上述类似的问题。 (您将收到 MIN+0、MIN+0、MIN+1、MIN+1、MIN+1、MIN+1。)
(如果您使用 sigaction
而不是 signal
,并且如果您在信号处理程序注册中指定了 SA_SIGINFO,并且如果信令应用程序使用 sigqueue
发送一个 int 以及一个选定的实数-time signal via sival_int
,然后您可以通过信号按顺序传输 1 和 0。然而,这是一个相当痛苦的用例。)
关于c - 玩转信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29084318/
注意:列转行的方法可能是我独创的了,呵呵,因为在网上找不到哦,全部是我自己写的,用到了系统的SysColumns (一)行转列的方法 先说说行转列的方法,这个就比较好想了,利用拼sql和case
您好,我是编码新手,正在尝试找出此 getopt 不起作用的原因。我的编译器提示“i:o:” 错误 C2664“int getopt(int,char **,char *)”:无法将参数 3 从“co
mockjs作用就是,生成随机模拟数据,拦截 ajax 请求,可以对数据进行增删改查。在生成数据时,我们就需要能够熟练使用 mock.js 的语法。 Mockjs 的语法规范包括两部分:数据模
我用 Java 开发了一个 SDK,我也有一个运行时。我想限制使用运行时 jar 的开发。我的 SDK 是节点锁定的,但我不想保持运行时节点锁定,以便我的客户可以自由地使用我的 SDK 开发应用程序,
这是玩 Rust 的链接: http://rustbyexample.com/match/guard.html 我发现 Rust 在我对无符号变量取反时显示警告,因此执行下面的代码以 结尾 warni
我正在尝试使用简单的 创建一个按钮栏并将其不透明度更改为 50% 并提供背景 但是进入这个分区的元素表现出与父级相同的透明度 .我希望它们保持 100% 的不透明度。 (这是不可能的)。如何使这成
谁能想出一种方法来使用 ol/li 列表中的数字来标记图像? 应用一些 CSS 后应该输出以下内容: ------ ------ ------ | | | | |
我有一个我认为微不足道的问题。我必须处理德语字母表中的元音变音 (äöü)。在Unicode中,似乎有几种显示它们的方法,其中之一就是组合字符。我需要规范化这些不同的方式,将它们全部替换为单字符代码。
来源:blog.csdn.net/weixin_44730681/article/details/107944048 1 基本概念 2 添加依赖 3 配置相关属性 4 sql监控 5 慢sql记录 6
我想对我的数据库进行两次调用,这将需要一段时间才能返回结果,而且我不想阻塞当前线程。我使用 Akka Futures 来包装数据库调用。 我不想等待(阻塞)两个调用返回,而是指定要调用的回调函数,然后
细心的人都会发现github个人主页有一个记录每天贡献次数的面板,我暂且称之为贡献面板。就像下图那个样子。只要当天在github有提交记录,对应的小格子就会变成绿色,当天提交次数越多,颜色也会越深。
今天第一次看 Bazel。 关于构建 cpp tutorial ,我可以看到它如何构建简单的可执行文件和存档库,但它看起来不像示例创建或使用共享库。 有谁知道用于演示此过程的简单示例 BUILD 文件
我正在尝试让 Play 2.2 在 IntelliJ IDEA 中运行,但遇到了一些问题。 Play 2 Framework 插件似乎不适用于 Play 2.2。 使用 play 控制台设置项目并使用
我正在使用类似单选按钮的 div,有一个问题。 我这样声明一个函数和变量 我设置了两种样式,一个 .buttonUp 和 .buttonDown 应用于 div 的 onclick 事件。 var
我是一名优秀的程序员,十分优秀!