标签: c

面向对象语言和非面向对象语言之间有什么区别?

我一直在听说C是一种非面向对象的语言,以及java是一种面向对象的语言.我想知道区别是什么?

c java oop

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

没有read()清空或"刷新"文件描述符?

(注意:这不是如何冲洗的问题write().这是它的另一端,可以这么说.)

是否可以清空包含要在其中读取数据的文件描述符不必使用read()它?您可能对数据不感兴趣,因此读取它们会浪费您可能更好地使用的空间和周期.

如果在POSIX中不可能,那么任何操作系统都有任何不可移植的方法吗?

更新:请注意,我在谈论文件描述符,而不是流.

c flush file-descriptor

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

学习C:视频课程推荐

我需要学习C来帮助我的教授做一些实验室工作.我只有大约两个星期准备好了.任何人都可以推荐一个好的课程/书籍,但最好是一个厚实和体面的视频课程(如麻省理工学院开放课程风格),但是你也有很好的经验.

谢谢你们

c

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

从C到C++

大家好.我最近开始了一份新工作,我应该使用C++ /我已经用C语言编程了近5年.我正在寻找让我达到OOP可接受水平的方法.我有C++和OOP的所有基本概念,但没有太多的实际类设计经验.我真正想要的是学习类库设计的方法,因为我将在一个为其他程序员编写C++库的团队中工作.请建议像"责任分配"这样的原则,它可以帮助我设计一般的课程.

c c++ oop

12
推荐指数
3
解决办法
950
查看次数

测试双数是否为整数的最快方法是什么(在现代英特尔X86处理器中)

我们的服务器应用程序在热代码路径中进行了大量的整数测试,目前我们使用以下函数:

inline int IsInteger(double n)
{
    return n-floor(n) < 1e-8
}
Run Code Online (Sandbox Code Playgroud)

这个功能在我们的工作量中非常热,所以我希望它尽可能快.如果可以的话,我也想删除"楼层"库调用.有什么建议?

c optimization x86 assembly sse

12
推荐指数
2
解决办法
6650
查看次数

主要()应该有多大?

我在假期周末学习了一点C,我开始研究用C编写的其他程序.我最后看了GNU Netcat,认为这将是一个很好的例子.

看到600线main()功能让我有点震惊.这是正常的吗?如果这是正常的,这被认为是良好的C编码实践吗?

c gnu

12
推荐指数
2
解决办法
1444
查看次数

一个纯字节版本的strstr?

是否有一个版本的strstr在固定长度的内存上工作,可能包含空字符?

我可以像这样说出我的问题:strncpy是memcpy,因为strstr是?

c strstr

12
推荐指数
2
解决办法
3968
查看次数

如何在奔腾4处理器上运行时测量C算法所消耗的功率?

如何在奔腾4处理器(以及任何其他处理器也可以)上运行时测量C算法所消耗的功率?

c performance

12
推荐指数
3
解决办法
3428
查看次数

如何使用另一个XMM寄存器条目中的4个相同浮点填充x86 XMM寄存器?

我正在尝试实现一些内联汇编程序(在C/C++代码中)以利用SSE.我想复制和复制值(从XMM寄存器或从内存)到另一个XMM寄存器.例如,假设我在内存中有一些值{1,2,3,4}.我想复制这些值,使xmm1填充{1,1,1,1},xmm2填充{2,2,2,2},依此类推.

查看英特尔参考手册,我找不到执行此操作的说明.我是否只需要使用重复MOVSS和旋转的组合(通过PSHUFD?)?

c c++ x86 sse inline-assembly

12
推荐指数
2
解决办法
6009
查看次数

以线程安全的方式使用glibc malloc钩子

我想通过使用malloc和free hook监视应用程序中mallocs和frees的使用.

这是文档http://www.gnu.org/s/libc/manual/html_node/Hooks-for-Malloc.html

在示例页面中,您可以看到,my_malloc_hook在重新调用malloc之前,会暂时关闭malloc挂钩(或链中的前一个挂钩).

监视多线程应用程序时这是一个问题(请参阅问题末尾以获得解释).

我在互联网上找到的使用malloc钩子的其他例子也有同样的问题.

有没有办法重新编写此函数以在多线程应用程序中正常工作?

例如,是否有一个内部libc函数,malloc钩子可以调用它来完成分配,而不需要停用我的钩子.

由于公司的法律政策,我无法查看libc源代码,因此答案可能很明显.

我的设计规范说我不能用不同的malloc设计替换malloc.

我可以假设没有其他钩子在玩.


UPDATE

由于在为malloc提供服务时临时删除了malloc钩子,因此另一个线程可能会调用malloc而不是获取钩子.

有人建议malloc有一个很大的锁定来防止这种情况发生,但它没有记录,而且我有效地递归调用malloc的事实表明任何锁必须存在于钩子之后,或者是快活的聪明:

caller -> 
  malloc -> 
    malloc-hook (disables hook) -> 
      malloc -> # possible hazard starts here
        malloc_internals
      malloc <-
    malloc-hook (enables hook) <-
  malloc
caller
Run Code Online (Sandbox Code Playgroud)

c malloc glibc

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

标签 统计

c ×10

c++ ×2

oop ×2

sse ×2

x86 ×2

assembly ×1

file-descriptor ×1

flush ×1

glibc ×1

gnu ×1

inline-assembly ×1

java ×1

malloc ×1

optimization ×1

performance ×1

strstr ×1