- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
得到这段代码:
static void
prime_test(void)
{
fprintf(stdout, "child prime_test process started\n");
int num;
fprintf(stdout, "enter your num: ");
fscanf(stdin, "%d", &num);
fprintf(stdout, "you entered %d\n", num);
if (num == -1) {
fprintf(stdout, "-1 is the wrong value\nnow exiting prime_test...\n");
exit(1);
}
int i;
int count = 0;
fprintf(stdout, "processing numbers...\n");
for (i = 1; i <= num; i++) {
if (num % i == 0) {
count++;
fprintf(stdout, "%d divides %d\n", i, num);
}
}
fprintf(stdout, "---------------------\n");
fprintf(stdout, "%d has %d divisors\n\n", num, count);
sleep(1);
}
int
main(void)
{
system("clear");
fprintf(stdout, "main() started\n");
while (1) {
pid_t pid = fork();
switch (pid) {
case -1:
fprintf(stderr, "failed to fork\n");
exit(1);
case 0:
fprintf(stdout, "now in child\n");
prime_test();
break;
case 1:
fprintf(stdout, "now in parent\n");
break;
}
if (pid != 0) {
int child_status;
pid_t child_pid = wait(&child_status);
fprintf(stdout, "child process with pid=%d finished\n", child_pid);
if (WIFEXITED(child_status)) {
fprintf(stdout, "child process with pid=%d exited with code %d\n", child_pid, child_status);
break;
}
}
sleep(1);
}
return 0;
}
我打印除数,直到用户输入 (-1)。如果 -1 我退出。它工作正常!我的问题是我想让 if (pid != 0)
中的消息在我退出 prime_test()
后立即出现。但它们只有在我输入 -1 退出整个程序后才会出现。
最佳答案
您想要的不一定是可能发生的。在 block if( pid != 0)
中,您使用了 wait()
。这意味着您将阻塞父线程,直到子线程完成执行。这些语句还打印出 child 完成执行并打印退出代码。从逻辑上讲,您只能在线程完成后打印退出代码。
现在,如果您想从父进程打印一些东西,以了解父进程正在并发执行,我建议添加 fprintf(stdout,"Parent process waiting for child to complete...");
在 wait()
函数之前。
关于C fork : child proc-meant printf messages appear only after the whole program finishes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33279795/
这两者有区别吗? startActivity(intent); finish(); startActivity(intent); ThisActivityName.this.finish(); 注意:
我有一个包含大量 url 链接的 arrayOfLinks。我需要从这些链接中获取图像。我正在使用以下代码来执行此操作。 - (void)getImages { NSArray *links
我想创建一条执行以下步骤的路线 读取文件 将文件分割成行 使用 BeanIO 解码行 调用(昂贵且耗时的)处理器 我想在处理完所有线路后完成这条路线。 所以我的路线的基本布局如下所示: from("d
我正在使用 Nodejs。我有一个异步的 forEach,因为我必须在 forEach 中等待结果。结果,我需要等待 forEach 完成,然后继续处理循环的结果。我找到了几种等待 forEach 的
我正在编写需要背靠背内核调用的 android renderscript 代码(有时一个内核的输出成为另一个内核的输入)。我还有一些全局指针,绑定(bind)到 Java 层的内存。每个内核更新那些全
伪代码: void draw() { Vertex* vertices = scene.GetVertexArray(); glEnableClientState(...);
当我创建一个 Android 应用程序时,我首先在其中创建了主 Activity ,然后添加了启动 Activity 以及一个正常 Activity 。 所以我的问题是每当我在应用程序中单击退出时,它
我正在尝试将一些 API 数据获取到我的应用程序,并且我有两个 Activity 。第一个是启动屏幕(就像加载应用程序时谷歌使用的那样),我想知道在哪里调用 finish() 来结束 Activity
我使用 创建了“新文件” Activity startActivityForResult(new Intent(MainActivity.this, NewFile.class),1); NewFil
我有一个以 SingleTask 模式 (Android 2.2) 运行的 Activity ,该 Activity 从其他 Activity 或服务接收 Intent 。我的 Activity 将每
我编写了以下代码来使用 TextView 和按钮显示消息框。单击按钮时, Activity 应该完成。但这有时会起作用,但并不一致。有时它会挂起。如何让它始终如一地工作?请帮忙 public clas
我正在搜索,当 onDestroy 在 android 应用程序上执行时,我发现它是在设备资源不足(RAM、CPU) 时执行的,并且当用户调用 finish() 时。 例如,当我按下后退按钮从一个 A
我正在编写一个 Android 应用程序,它显示一个带有一些元素和一些 CRUD 操作的 RecyclerView。我想做的一件事是从我的 RecyclerView 更新现有元素,为此我打开一个新 A
被测试的 Activity 是一个简单的棋盘游戏。当满足游戏结束的必要条件时,在执行几项操作以显示谁赢了等之后,将运行以下代码: // Return to main menu after 5 seco
我有一个 Activity ,它创建了我创建的名为classA的类的新实例。在classA中,我有一个方法将对象添加到位于classA中的STATICarrayList。 所以我的 Activity
我正在使用 Facebook Android SDK,并希望在用户登录并获取用户对象后关闭我的 Activity。实际上,我存储了它的一部分,但无论如何我都想关闭该 Activity 。
我以前从事c# dotnet开发,有一个Application.exit()类型的方法,可以立即关闭应用程序并释放内存。 我发现 android 的“finish()”方法应该这样做 但它没有这样做,
我有一个 Activity ,我调用了 finish() 方法,但 Activity 没有从内存中清除。 调用 finish() 后,我看到方法 onDestroy() 已成功执行(并且我清除了其中的
我想在我的MKMapView上设置一个区域,然后找到与 map 的东北角和西南角对应的坐标。 This code works just fine to do that: //Recenter and
我正在尝试使用从顶部滑动动画将一个 View 替换为另一个 View 。我有点遵循 http://gentlebytes.com/2011/09/auto-layout-in-lion/ 中发布的指南
我是一名优秀的程序员,十分优秀!