小编use*_*770的帖子

Unix套接字,SOCK_SEQPACKET与SOCK_DGRAM

似乎至少有3种不同的本地/ unix套接字类型(PF_UNIX),SOCK_STREAM,SOCK_DGRAM和SOCK_SEQPACKET.

虽然我知道SOCK_STREAM为您提供双向字节流,如TCP或双向管道,而另外两个为您提供了一个消息/数据包API,SOCK_DGRAM和SOCK_SEQPACKET的unix套接字之间有什么区别?

由于这些只是本地的,我想不出有人以一种可以重新排序数据包的方式实现SOCK_DGRAM的好理由.

此外,SOCK_DGRAM/SOCK_SEQPACKET是否采用流量控制,或者在读取速度慢的情况下可以丢弃消息?

c unix

50
推荐指数
4
解决办法
3万
查看次数

在C11中使用_Noreturn

可能重复:
Noreturn属性的重点是什么?

C11引入了_Noreturn属性来指示函数永远不会返回.

除了源代码中的文档值之外,该属性还提供了哪些其他好处,以及为什么要使用它?

c c11

17
推荐指数
2
解决办法
6435
查看次数

无符号减法在包裹时如何工作?

这是lwIP源代码中的一个宏:

#define TCP_SEQ_LT(a,b)     ((int32_t)((uint32_t)(a) - (uint32_t)(b)) < 0)
Run Code Online (Sandbox Code Playgroud)

用于检查TCP序列号是否小于另一个序列号,考虑序列号何时环绕.它利用了算术包装的事实,但我无法理解这在特定情况下是如何工作的.

任何人都可以解释发生了什么,为什么上述工作?

c

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

避免/警告C++成员的自我初始化

做了以下事情后被咬了之后:

struct Person {

  std::string first_name;
  std::string last_name;
  Person(const std::string &first_name_, const std::string &last_name_) : 
    first_name(first_name_),
    last_name(last_name)
    {}
};
Run Code Online (Sandbox Code Playgroud)

初始化器last_name(last_name)显然应该在哪里,last_name(last_name_) 我可以让gcc警告这样的错误(是否有任何用例初始化成员的用例?)

或者在构造函数参数与字段类似的情况下对更好的命名约定的任何建议.

c++ gcc

6
推荐指数
2
解决办法
1125
查看次数

va_copy()是否需要va_end()?

处理变量参数时,是否va_start()需要匹配va_end()调用,或者也va_copy()需要匹配va_end(),即

void foo(char *x, ...)
{
  va_list l,c;

  va_start(l,x);
  va_copy(c,l);

  ---
  va_end(c); //is this correct ?
  va_end(l);
}
Run Code Online (Sandbox Code Playgroud)

c c99

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

gcc标志检测字符串文字串联?

我最近修复了一个类似的结果的错误

const char *arr[] = {
"string1", //some comment
"string2",
"string3"  //another comment
"string4",
"string5"
};
Run Code Online (Sandbox Code Playgroud)

即有人忘记了一个,在"string3"之后,"string3"和"string4"被粘贴在一起.现在,虽然这是完全合法的代码,是否有gcc警告标志,或其他工具可以扫描代码库中的类似错误?

c

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

如何在go中引用一个未命名的函数参数?

go中函数参数的名称是可选的.意思是以下是合法的

func hello(string) {

    fmt.Println("Hello")
}

func main() {
    hello("there")
}
Run Code Online (Sandbox Code Playgroud)

(去游乐场链接)

如何在foo()函数中引用1.参数(用字符串类型声明)参数?

go

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

在 linux 上获取 NIC/以太网卡链接状态的事件

Linux 上是否有任何 API(或特殊文件)提供有关以太网卡链接状态更改的事件而无需轮询?即当您插入/拔出电缆时?

c linux

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

标签 统计

c ×6

c++ ×1

c11 ×1

c99 ×1

gcc ×1

go ×1

linux ×1

unix ×1