小编Mat*_*ant的帖子

如何使用正确的参数调用C中的execl()?

如果我输入一个shell,我有vlc(重现视频的程序):

/ home/vlc"/ home/my movies /我想看的电影.mkv"

它打开了一个再现电影.

但是,当我运行以下程序时:

#include <unistd.h>

int main(void) {

  execl("/home/vlc", "/home/my movies/the movie i want to see.mkv",NULL);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

vlc打开但不会重现任何内容.我怎么解决这个问题?

我试过的事情:

我猜的

execl("/home/vlc", "/home/my movies/the movie i want to see.mkv",NULL);
Run Code Online (Sandbox Code Playgroud)

相当于在shell中输入:

/home/vlc /home/my movies/the movie i want to see.mkv
Run Code Online (Sandbox Code Playgroud)

这不起作用,所以我试过

 execl("/home/vlc", "\"/home/my movies/the movie i want to see.mkv\"",NULL);
Run Code Online (Sandbox Code Playgroud)

和vlc打开但不会重现.

我没有在最后写NULL,而是尝试了0,(char*)0,1 ....没有用.救命!!!!

c quotes external exec unistd.h

19
推荐指数
1
解决办法
11万
查看次数

glActiveTexture() 抛出 GL_INVALID_ENUM

线

glActiveTexture(GL_TEXTURE0+32);
Run Code Online (Sandbox Code Playgroud)

抛出 GL_INVALID_ENUM(因为我发现运行 glGetError()),而

glActiveTexture(GL_TEXTURE0+31);
Run Code Online (Sandbox Code Playgroud)

运行良好。

根据文档

“如果纹理不是 GL_TEXTUREi 之一,则生成 GL_INVALID_ENUM,其中 i 的范围从零到 GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 的值减去一。”

但在我的情况下 GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 被定义为 35661,并且根据相同的文档

“纹理单元的数量取决于实现,但必须至少为 80。”

我怎么能解决这个问题?

以防万一,GL_TEXTURE0 被定义为 33984 而我的 OpenGL 版本是 2.1

opengl

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

标签 统计

c ×1

exec ×1

external ×1

opengl ×1

quotes ×1

unistd.h ×1