小编Ran*_*Tek的帖子

如何在grep中抑制二进制文件匹配结果

在linux中使用grep时,结果总是包含很多"二进制文件XXX匹配",我不在乎.如何抑制这部分结果,或者如何在grep中排除二进制文件?

linux grep

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

接口 - 在C#中实现匿名类?

在C#中是否有一个构造允许您创建一个实现接口的匿名类,就像在Java中一样?

c# anonymous-class

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

在eclipse中调试makefile项目

我在eclipse中导入了一个"现有代码作为makefile项目"项目.我想在eclipse中调试,比如我可以创建断点或者单步执行代码.如果我直接调试项目,eclipse说XXX.cpp没有源代码,所以我无法调试.

我应该如何在eclipse中更改makefile进行调试?

c++ eclipse eclipse-cdt

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

在RSpec中,如何期望以任何顺序使用不同参数的多条消息?

RSpec似乎按顺序匹配方法接收的消息.我不知道如何使以下代码工作:

allow(a).to receive(:f)
expect(a).to receive(:f).with(2)
a.f(1)
a.f(2)
a.f(3)
Run Code Online (Sandbox Code Playgroud)

我问的原因是有些调用a.f是由我的代码的上层控制的,所以我不能对这些方法调用添加期望.

ruby unit-testing rspec ruby-on-rails

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

如何确定文件描述符是否附加到Linux中的文件或套接字

在Linux中使用C语言,如何确定文件描述符是否附加到文件或套接字?

c unix sockets linux posix

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

如何使用Morphia查询最新插入的项目

如何使用Morphia查询最新插入的项目以及如何获取集合的大小?

morphia

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

如何编写一个日志函数或宏,可以将调用者的名称附加到C中的日志输出

我需要C语言中的日志功能或宏,它应该在Linux中工作,可以接受格式字符串和参数列表,并且可以将调用者的函数名称附加到输出字符串.

这是一个例子.假设日志记录功能(宏)称为smart_log.看起来像:

smart_log(const char *fmt, ...)
Run Code Online (Sandbox Code Playgroud)

第一个参数fmt是一个格式字符串,就像printf中的格式字符串一样.fmt之后是feed fmt的其他参数列表.

假设一个名为example_function的函数以这种方式调用smart_log:

void example_function() {
    smart_log("try to output number %d\n", 1);
}
Run Code Online (Sandbox Code Playgroud)

然后日志字符串看起来像:

[example_function]: try to output number 1
Run Code Online (Sandbox Code Playgroud)

所以关键是smart_log将调用者的函数附加到格式字符串.

我不知道如何在C中实现这一点.我认为可以使用宏来实现这一目标.

c macros logging

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

GL_QUADS状态不支持多个glBindTexture?

简而言之,为什么我不能将两个glBindTexture放入一个glBegin(GL_QUADS)... glEnd()?

我正在关注OpenGL红皮书第9章,http://www.glprogramming.com/red/chapter09.html

在例9-5中,程序texbind.c生成两个具有不同纹理的四边形,如下所示: 在此输入图像描述

左边的四边形有一个白色的棋盘格纹,而右边的四边形有一个红色的棋盘格.

这是将纹理映射到两个四边形的代码:

void display(void)
{
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  glBindTexture(GL_TEXTURE_2D, texName[0]);
  glBegin(GL_QUADS);
  glTexCoord2f(0.0, 0.0); glVertex3f(-2.0, -1.0, 0.0);
  glTexCoord2f(0.0, 1.0); glVertex3f(-2.0, 1.0, 0.0);
  glTexCoord2f(1.0, 1.0); glVertex3f(0.0, 1.0, 0.0);
  glTexCoord2f(1.0, 0.0); glVertex3f(0.0, -1.0, 0.0);
  glEnd();
  glBindTexture(GL_TEXTURE_2D, texName[1]);
  glBegin(GL_QUADS);
  glTexCoord2f(0.0, 0.0); glVertex3f(1.0, -1.0, 0.0);
  glTexCoord2f(0.0, 1.0); glVertex3f(1.0, 1.0, 0.0);
  glTexCoord2f(1.0, 1.0); glVertex3f(2.41421, 1.0, -1.41421);
  glTexCoord2f(1.0, 0.0); glVertex3f(2.41421, -1.0, -1.41421);
  glEnd();
  glFlush();
}
Run Code Online (Sandbox Code Playgroud)

我们可以看到,即使代码使用GL_QUADS,它也会在每个GL_QUADS状态中绘制一个四元组.但是,如果我在这段代码的中间注释掉glEnd()和glBegin(GL_QUADS),就像这样:

void display(void)
{
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  glBindTexture(GL_TEXTURE_2D, texName[0]);
  glBegin(GL_QUADS);
  glTexCoord2f(0.0, 0.0); glVertex3f(-2.0, -1.0, 0.0);
  glTexCoord2f(0.0, 1.0); …
Run Code Online (Sandbox Code Playgroud)

opengl texture-mapping

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