小编use*_*514的帖子

问叉()多个进程Unix

所以我有这个功能,分叉N个子进程.然而,似乎分叉超过指定.你能告诉我我做错了什么吗?谢谢

void forkChildren(int nChildren){
    int i;
    for(i = 1; i <= nChildren; i++){
        pid = fork();
        if(pid == 0)          
            printf("I'm a child: %d PID: %d\n",i, getpid());
    }

} 
Run Code Online (Sandbox Code Playgroud)

在主要我打电话:

forkChildren(5);
Run Code Online (Sandbox Code Playgroud)

我期待以下输出:

I'm a child: 1 PID: 2990
I'm a child: 2 PID: 2991
I'm a child: 3 PID: 2992
I'm a child: 4 PID: 2993
I'm a child: 5 PID: 2994
Run Code Online (Sandbox Code Playgroud)

但相反,我得到以下内容:

I'm a child: 1 PID: 2990
I'm a child: 2 PID: 2991
I'm a child: 3 PID: 2992 …
Run Code Online (Sandbox Code Playgroud)

c fork process

15
推荐指数
2
解决办法
4万
查看次数

垃圾收集与非垃圾收集编程语言

因此,如果我理解得很好,垃圾收集会自动释放程序不再使用的对象.像java中的垃圾收集器.

我听说像C这样的语言不支持垃圾收集,程序可能会有内存泄漏并随后耗尽内存.

那么程序员在不支持垃圾收集的C语言中所犯的错误是什么?我猜不会在它们不再使用后解除分配对象.但是由于缺少垃圾收集器,这些是我们可以做的唯一错误吗?

c java garbage-collection

14
推荐指数
3
解决办法
4265
查看次数

10
推荐指数
1
解决办法
2万
查看次数

C printf使用%d和%f

我正在研究这个程序,我注意到使用%f表示double,%d表示float,这给了我一些完全不同的东西.谁知道为什么会这样?

int main ()
{
 float a = 1F;
 double b = 1;

 printf("float =%d\ndouble= %f", a, b);
}
Run Code Online (Sandbox Code Playgroud)

这是输出

float = -1610612736
double = 190359837192766135921612671364749893774625551025007120912096639276776057269784974988808792093423962875123204096.0000
Run Code Online (Sandbox Code Playgroud)

c printing floating-point double printf

10
推荐指数
2
解决办法
7万
查看次数

Java StringTokenizer,空null标记

我试图将一个字符串分成29个令牌..... stringtokenizer不会返回null令牌.我试过string.split,但我相信我做错了什么:

String [] strings = line.split(",", 29);
Run Code Online (Sandbox Code Playgroud)

样本输入:

10150,15:58,23:58,16:00,00:00,15:55,23:55,15:58,00:01,16:03,23:58,,,,,16:00,23:22,15:54,00:03,15:59,23:56,16:05,23:59,15:55,00:01,,,,
10155,,,,,,,,,,,07:30,13:27,07:25,13:45,,,,,,,,,,,07:13,14:37,08:01,15:23
10160,10:00,16:02,09:55,16:03,10:06,15:58,09:48,16:07,09:55,16:00,,,,,09:49,15:38,10:02,16:04,10:00,16:00,09:58,16:01,09:57,15:58,,,,
Run Code Online (Sandbox Code Playgroud)

java string string-split stringtokenizer

10
推荐指数
2
解决办法
2万
查看次数

顺时针旋转阵列

我有一个二维数组,我需要顺时针旋转90度,但我不断得到arrayindexoutofbounds ...

public int[][] rorateArray(int[][] arr){

        //first change the dimensions vertical length for horizontal length
        //and viceversa
        int[][] newArray = new int[arr[0].length][arr.length];

        //invert values 90 degrees clockwise by starting from button of
        //array to top and from left to right
        int ii = 0;
        int jj = 0;
        for(int i=0; i<arr[0].length; i++){
            for(int j=arr.length-1; j>=0; j--){
                newArray[ii][jj] = arr[i][j];

                jj++;
            }
            ii++;
        }

        return newArray;
    }
Run Code Online (Sandbox Code Playgroud)

java arrays algorithm

10
推荐指数
2
解决办法
5万
查看次数

Smalltalk - 比较两个字符串是否相等

我试图比较Smalltalk中的两个字符串,但我似乎做错了什么.

我一直收到这个错误:

未处理的异常:非布尔接收器.继续求真.

stringOne := 'hello'.
stringTwo := 'hello'.
myNumber := 10.

[stringOne = stringTwo ] ifTrue:[
   myNumber := 20].
Run Code Online (Sandbox Code Playgroud)

知道我做错了什么吗?

string smalltalk visualworks squeak

9
推荐指数
2
解决办法
7566
查看次数

C89 vs c99 GCC编译器

如果我使用c89 vs c99编译以下程序有区别吗?我得到相同的输出.两者之间真的有区别吗?

#include <stdio.h>

    int main ()
    {
      // Print string to screen.
      printf ("Hello World\n");
    }

gcc -o helloworld -std=c99 helloworld.c 
vs
gcc -o helloworld -std=c89 helloworld.c 
Run Code Online (Sandbox Code Playgroud)

c compiler-construction gcc c99 c89

9
推荐指数
2
解决办法
2万
查看次数

C或C++.如何比较给出char*指针的两个字符串?

我正在以两种方式对我的汽车阵列进行排序.一年一年,如下所示.和另一个由make.Make是一个char*如果我只是指向它们,我如何比较字符串?

int i, j;
for(i=0; i<100; i++){
    for(j=0; j<100-i; j++){
        if(carArray[i]!=NULL && carArray[j]!= NULL && carArray[j+1]!=NULL){
            if(carArray[i]->year > carArray[j+1]->year){
                swap(carArray[j], carArray[j+1]);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

上述方法适用于int(年).如何使它适用于char指针?

c c++ sorting pointers

9
推荐指数
2
解决办法
4万
查看次数

C编程.如何深度复制结构?

我有以下两个结构,其中"child struct"有一个"rusage struct"作为元素.

然后我创建两个类型为"child"的结构,让我们称它们为childA和childB

如何将childA的rusage结构复制到childB?

typedef struct{                         
        int numb;
        char *name;
        pid_t pid;
        long userT;
        long systemT;
        struct rusage usage;
}child;


typedef struct{
    struct timeval ru_utime; /* user time used */
    struct timeval ru_stime; /* system time used */
    long   ru_maxrss;        /* maximum resident set size */
    long   ru_ixrss;         /* integral shared memory size */
    long   ru_idrss;         /* integral unshared data size */
    long   ru_isrss;         /* integral unshared stack size */
    long   ru_minflt;        /* page reclaims */
    long   ru_majflt;        /* …
Run Code Online (Sandbox Code Playgroud)

c struct deep-copy memcpy

8
推荐指数
2
解决办法
3万
查看次数