小编use*_*288的帖子

unix网络编程书代码因旧操作系统有bug,如何解决这个问题或在哪里获取新代码?

我试图在Linux上下载并运行c代码

UNIX网络编程,第1卷,第2版:网络API:套接字和XTI,Prentice Hall,1998,ISBN 0-13-490012-X.这是由W.史蒂文斯理查德

 http://kohala.com/start/unpv12e/unpv12e.tar.gz
Run Code Online (Sandbox Code Playgroud)

但是,当我构建代码时,我得到了错误:

  gcc -g -O2 -D_REENTRANT -Wall   -c -o connect_nonb.o connect_nonb.c
  In file included from connect_nonb.c:1:
   unp.h:114: error: redefinition of âstruct in_pktinfoâ
   make: *** [connect_nonb.o] Error 1
Run Code Online (Sandbox Code Playgroud)

我注释掉了struct in_pktinfo.然后我遇到了新的错误:

   gcc -g -O2 -D_REENTRANT -Wall   -c -o in_cksum.o in_cksum.c
   gcc -g -O2 -D_REENTRANT -Wall   -c -o inet_ntop.o inet_ntop.c
   inet_ntop.c: In function âinet_ntopâ:
   inet_ntop.c:61: error: argument âsizeâ doesnât match prototype
   /usr/include/arpa/inet.h:67: error: prototype declaration
   make: *** [inet_ntop.o] Error 1
Run Code Online (Sandbox Code Playgroud)

我不想一个接一个地调试整个575文件.

没有这些错误,我在哪里可以获得新代码?新版本书有无错误的代码?

旧代码仅适用于旧操作系统.

谢谢

c unix linux networking

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

如何在C++中定义向量<boost :: mutex>?

我想用boost :: mutex定义一个向量,如:

  boost::mutex myMutex ;
  std::vector< boost::mutex > mutexVec; 
  mutexVec.push_back(myMutex); 
Run Code Online (Sandbox Code Playgroud)

但是,我在Linux上遇到错误:

/boost_1_45_0v/include/boost/thread/pthread/mutex.hpp:33:错误:âboost:: mutex :: mutex(const boost :: mutex&)â是私有的/usr/lib/gcc/x86_64-redhat-linux/4.1 .2 /../../../../ include/c ++/4.1.2/ext/new_allocator.h:104:错误:在此上下文中

我无法通过在线搜索找到解决方案.

谢谢

c++ boost mutex vector

5
推荐指数
3
解决办法
4092
查看次数

如何设计最近最新使用的缓存?

如何设计最近最新使用的缓存?

假设您访问了一些项目.您需要设计一个数据结构来保存这些项目.每个项目都与最近访问的时间相关联.

每次访问项目时,请在数据结构中进行检查.如果该项目已在缓存中,请更新其访问时间.否则,将其插入缓存中.高速缓存大小是固定的,如果已满,则删除最旧的项目.

我的解决方案

  1. 使用地图<item,visitTime>

  2. 初始化:使用f(visitTime)按降序对地图进行排序.O(nlg n)

  3. 如果访问了某个项目,请使用O(lg n)在地图中搜索该项目.

  4. 如果它已在地图中,则更新时间O(1).对地图O(lg n)进行排序.

  5. 如果没有,请将其插入地图然后排序.O(lg n)

  6. 如果地图大小>固定大小,则删除最后一个元素O(1).

另一种方案:

  1. 使用哈希表<item,visitTime>

  2. 将它排序为O(n lgn).

  3. 如果访问了某个项目,请使用O(1)在该项目中进行搜索.

  4. 如果它已在表中,则更新时间O(1).对表O(n lg n)进行排序.

  5. 如果没有,请将其插入表中然后排序.O(n lg n)

  6. 如果表大小>固定大小,则删除最后一个元素O(1).

有更好的解决方案吗?上) ?

c++ algorithm hash lru data-structures

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

如何提高具有100万个元素和997个桶的哈希表的性能?

这是一个面试问题.

假设表中有100万个元素和997个无序列表桶.进一步假设散列函数以相等的概率分配密钥(即,每个桶具有1000个元素).

查找表中没有的元素的最坏情况是什么时候?要找到表中的一个?你怎么能改善这个?

我的解决方案:查找不在表和表中的元素的最坏情况时间都是O(1000).1000是未排序列表的长度.

改进它:(0)直截了当,增加桶数> 100万.(1)每个桶包含第二个哈希表,它使用不同的哈希函数来计算第二个表的哈希值.它将是O(1)(2)每个桶包含一个二叉搜索树.它将是O(lg n).

是否有可能在空间和时间之间进行权衡.将它们保持在合理的范围内.

有更好的想法吗?谢谢 !

c++ hash hashtable hashmap data-structures

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

如何对vector <char*>进行排序?

#include <algorithm>

bool comparisonFunc(char* c1, char* c2)
{
     return strcmp(c1, c2) ? 0 : 1;
}

vector<char*> myVec;
vector<char*>::iterator itr;
sort(myVec.begin(), myVec.end(), comparisonFunc)
Run Code Online (Sandbox Code Playgroud)

这是正确的还是有更好的方法呢?

c++ sorting string vector

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

如何将新节点插入到单链表中,我们没有指向其头部的指针?

给定指向单链接列表上的中间节点(非头,非尾)的指针.如何在给定指针指向的节点之前插入新节点?

示例,给定单链表:

  A -> B -> C -> D -> E 
Run Code Online (Sandbox Code Playgroud)

给定指向C(ptr =&C)的指针和新节点F,如何获取

 A -> B -> F -> C -> D -> E 
Run Code Online (Sandbox Code Playgroud)

注意:我们没有指向A的指针.

谢谢

c++ algorithm linked-list list data-structures

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

C++中的默认参数有一些特殊属性吗?

这是一个面试测试问题而不是作业.测试已经完成.

以下哪些关于C++中的默认参数的陈述是正确的?

A. Default Argument cannot be of a user-defined type.
B. Default Argument can never precede non-default arguments
C. Default Argument cannot be of pointer type.
D. Default Argument exist in global heap not function's stack
E. Default Argument are not considered for generating the function's signature. 
Run Code Online (Sandbox Code Playgroud)

我选择了B和E.这些是正确的吗?我不确定D,这也是正确的吗?

c++ heap arguments default function

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

int []和int*之间的区别作为函数参数

这是一个面试问题:

int []和之间有什么区别int*,所有这些都是函数的输入参数.

f(int a[] , int* b)
Run Code Online (Sandbox Code Playgroud)

我的答案:

因为f(),它们具有相同的功能.第一个是第一个元素的起始位置a[].

第二个指向一个int.

但是,如何在不传递其他论据的情况下将它们彼此区分开来?

c c++ pointers arguments function

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

在Linux shell bash脚本中,如何在同一行打印到文件?

在Linux shell bash脚本中,如何在同一行打印到文件?

在每次迭代中,

我用了

 echo "$variable1"  >> file_name, 

 echo "$variable2"  >> file_name, 
Run Code Online (Sandbox Code Playgroud)

但是echo插入换行符以便它成为

 $v1

 $v2 
Run Code Online (Sandbox Code Playgroud)

     $v1 \tab  $v2
Run Code Online (Sandbox Code Playgroud)

"\ c"不能吃换行.

这篇文章 BASH shell脚本回显到同一行输出

没有帮助.

谢谢

linux bash shell

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

在linux上,如何确保解锁锁定在死亡/终止的线程中的互斥锁?

这是一个面试问题.

在linux上,如何确保解锁被锁定在死机/终止的POSIX线程中的POSIX互斥锁?

我的想法:

Linux会在向程序发送终止或终止信号时自动释放它吗?但是,我找不到有关操作系统如何执行此操作的更多详细信息?

谢谢

linux multithreading mutex locking

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