小编sig*_*ice的帖子

Linux网络应用程序的高延迟

我正在玩linux网络编程,我写了一个小客户端服务器应用程序,它在客户端和服务器进程之间弹出一条小消息并测量往返时间.我一直看到大约80ms的localhost往返(这是在连接设置之后).这似乎非常高.在Vista上,运行相同代码的同一台机器的时钟频率将大大低于1ms.

关于这种差异可能来自哪里的任何想法?代码非常简单,一端接受,另一端连接,然后通过对等套接字发送/接收.

我只是开始Linux,如果这是一个愚蠢的问题,道歉.

linux networking latency

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


在Python中调用help(help)时,"扭曲"是什么意思?

help(help)这是pydoc.help的一个包装(有一个扭曲).

扭曲是什么?

$ python 
Python 2.7.10 (default, Jul 30 2016, 19:40:32) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> help(help)
Help on _Helper in module site object:

class _Helper(__builtin__.object)
 |  Define the builtin 'help'.
 |  This is a wrapper around pydoc.help (with a twist).
 |  
 |  Methods defined here:
 |  
 |  __call__(self, *args, **kwds)
 |  
 |  __repr__(self)
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |  
 | …
Run Code Online (Sandbox Code Playgroud)

python python-2.x pydoc

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

c字符串标记化问题

char *str = malloc (14);
sprintf(str, "%s", "one|two|three");

char *token1, *token2, *token3;
char *start = str;

token1 = str;
char *end = strchr (str, '|');
str = end + 1;
end = '\0';

token2 = str;
end = strchr (str, '|');
str = end + 1;
end = '\0';

...

free(start);
Run Code Online (Sandbox Code Playgroud)

这是免费工作,因为我已经将str中的字节设置为null以便对它进行标记化吗?

c string

1
推荐指数
1
解决办法
133
查看次数

通过函数调用C malloc到指针导致总线错误

由于我对将指针类型内存分配给指针的过分理解,以下原因导致对barrier_create的调用出现总线错误("hi"从不打印).

typedef struct barrier barrier_t;
typedef struct barrier *barrier_p;

barrier_p test_barrier_p;

int main(int argc, char *argv[]) {
    barrier_create(*test_barrier_p);
}

int barrier_create(barrier_p *barrier_pointer) {
printf("hi\n");
    barrier_p old_barrier, new_barrier;
    int count;
    old_barrier = (barrier_p) *barrier_pointer;
    new_barrier = (barrier_p) malloc(sizeof(*new_barrier));
    count = pthread_mutex_init(&new_barrier->lock, NULL);
    new_barrier->is_valid = VALID_BARRIER;
    new_barrier->counter = 0;
    new_barrier->release_flag = 0;
    *barrier_pointer = new_barrier;
    return HAPPY_HAPPY_JOY_JOY;
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么或输入错误?

c malloc struct pointers bus-error

0
推荐指数
2
解决办法
2149
查看次数

我可以声明一个函数而不指定其中一个参数的类型吗?

可以像这样定义一个函数:

int foo(int temp1, int temp2 temp3) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

特别是temp2temp3,会导致错误吗?如果没有,整体效果如何?

c syntax function

0
推荐指数
1
解决办法
108
查看次数

Lisp中的递归加法

我是一个初学者,我正在尝试自学Common Lisp,在我的自学期间,我编写了一个函数,我相信它应该适用于递归添加两个参数.但是,该功能总是失败.这是为什么?

(defun sum (n m)
  ;;;Returns the sum of n and m using recursion
  (cond ((eq m 0) n))
  (sum (1+ n) (1- m)))
Run Code Online (Sandbox Code Playgroud)

据我了解,它应该连续加1到n,同时递减m直到m为0,此时递归加法完成

lisp recursion common-lisp addition

0
推荐指数
2
解决办法
851
查看次数

如何为每个玩家生成不同的随机数?

两位玩家都获得相同的随机数!我希望每个玩家得到一个不同的数字,因为他们掷骰子.这是代码:

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int roll_a_dice(void);

int main(int argc, const char *argv[])
{   
    int flag;
    int answer1 = roll_a_dice();
    int answer2 = roll_a_dice();

    printf("Die 1 (rolled by player 1): %d\n", answer1);
    printf("Die 2 (rolled by player 2): %d\n", answer2);

    if (answer1>answer2) {
        printf("Player 1 is starting!\n");
        flag = 1;
    } else {
        printf("Player 2 is starting!\n");
        flag = 2;
    }

    printf("Goodbye!\n");

    return 0;        
}

int roll_a_dice(void)
{
    int r;

    srand(time(NULL));
    r = 1 + rand() % 6; …
Run Code Online (Sandbox Code Playgroud)

c random srand

-2
推荐指数
1
解决办法
377
查看次数