小编Sha*_*baz的帖子

相关产品没有显示不同的价格

我刚刚添加了一个产品,一切正常.该产品是具有不同属性的顶部:尺寸和颜色.

但是我希望在销售中使用不同颜色之一的价格,所以我进入了相关产品部分并改变了价格.但是,每当我访问网站并点击降价顶部的颜色时,它仍会显示原始价格,而不是我刚刚更改的价格.

如何让它显示我改变它的价格?

magento

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

使用通配符排除具有特定后缀的文件

我正在尝试使用bash中的通配符,并尝试列出所有以"xyz"开头但不以".TXT"结尾的文件,但结果不正确.

这是我尝试的命令:

$ ls -l xyz*[!\.TXT]
Run Code Online (Sandbox Code Playgroud)

它没有列出我的目录中名称为"xyz"和"xyzTXT"的文件.但是,它列出了"xyz1","xyz123".

似乎[!\.TXT]在"xyz*"之后添加使shell看起来以"xyz"开头且至少有一个字符的东西.

任何想法为什么会发生以及如何纠正这个命令?我知道它可以使用其他命令来实现,但我特别感兴趣的是知道它为什么失败以及它是否只能使用通配符.

linux bash wildcard

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

如何终止 Emacs 中正在运行的进程

当我编译c++文件时,emacs显示\xef\xbc\x9a

\n\n
\n

编译进程正在运行;杀死它?(y 或 n)。

\n
\n\n

y没有任何效果。如何在 Emacs 中终止活动进程?进程列表中有很多正在运行的进程

\n

c++ emacs process

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

Windows和Linux操作系统的内存布局有什么不同吗?

当我在Windows和Linux上运行下面编写的代码时,我会得到两个不同的输出.

我正在使用gcc.当我在Windows上运行时,我将"Seek"作为输出,而在Linux上运行它,我将"Hide"作为输出.Windows和Linux的内存布局有什么不同,还是有其他原因导致输出不同?

int main()
{
    int a=0;
    int *b=(int *)malloc(sizeof(int));
    if(&a>b)
        printf("Hide");
    else
        printf("Seek");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c linux memory windows layout

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

如何使用 automake 启用安静构建?

想象一下 autoconf 生成的以下目标和命令:

.c.lo:
    $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
    $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
Run Code Online (Sandbox Code Playgroud)

我正在 Makefile.am 中寻找一种方法来操作该命令,知道该命令是由 autoconf 生成的,但我不知道它是什么。理论上,是这样的:

if BUILD_QUIETLY
    Q=@
endif

.c.lo:
     $(Q)$(autoconf-command-for-c-lo)
Run Code Online (Sandbox Code Playgroud)

或者类似的东西(这类似于 Linux 内核的构建输出):

quiet_cmd_cc = CC     $@
      cmd_cc = $(autoconf-command-for-c-o)

.c.o:
    $(call cmd,cc)
Run Code Online (Sandbox Code Playgroud)

其中是执行并打印或基于变量的cmd函数。cmd_$1quiet_cmd_$1cmd_$1

我在互联网上查找了此内容,但大多数网站都讨论了 autoconf 的基础知识。这里似乎也没有任何与此相关的问题。

这可能吗?

automake

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

`type*var =(int)0`,合法与否?

以下示例:

char *var = (int)0;
Run Code Online (Sandbox Code Playgroud)

在gcc和cl.exe上编译,但在clang中导致错误:

不能使用'int'类型的右值初始化'char*'类型的变量

谁在这里是对的?


对于它的价值,C++ 11说(强调我的)

4.10/1

空指针常量是整数类型的整数常量表达式(5.19)prvalue,其计算结果为零或类型为std :: nullptr_t的prvalue.空指针常量可以转换为指针类型; 结果是该类型的空指针值和...

5.19/3

整数常量表达式是整数或未整数枚举类型的文字常量表达式.[注意:这些表达式可以用作数组边界(8.3.4,5.3.4),作为位字段长度(9.6),作为枚举器初始化器,如果底层类型不固定(7.2),作为空指针常量(4.10) )和作为比对(7.6.2). - 结束说明]

据我所知,上述代码应该是非法的.cl.exe臭名昭着地违反了标准(所以我不相信它),但是gcc也接受上面的代码.标准的其他部分是否与我缺失相关或者是否完全是一个gcc错误?

c++ gcc clang visual-c++ language-lawyer

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

D_FORTIFY_SOURCE和gcc

此函数用于生成md5hash:

out = malloc(32+1);
void md5sum( u_char *secret_data, int secret_len, char *in,char *out ) {
        ngx_md5_t       md5;
        u_char hash[16];
        ngx_md5_init(&md5);
        ngx_md5_update(&md5, in, strlen(in));
        ngx_md5_update(&md5, secret_data, secret_len);
        ngx_md5_final(hash, &md5);
        int ii;
        for (ii = 0; ii &lqt; 16; ii++) {
                char tt[2];
                sprintf(tt, "%02x", hash[ii] );
                strcat(out,tt);

        }
}
Run Code Online (Sandbox Code Playgroud)

它工作,但如果我使用选项D_FORTIFY_SOURCE与gcc编译器,我得到一个分段错误.如果我将类型更改tt为:char tt[3],一切正常.为什么?

c gcc

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

在OpenGL中使光源可见

我想在我的OpenGL-Scene中移动我的光源,这是有效的.但实际上我也希望看到你的光源.

我怎样才能做到这一点?

...
glPushMatrix();
GLfloat lightPos[]      = {0, 0, 200, 1};
glLightfv(GL_LIGHT0, GL_POSITION, lightPos);

GLfloat ambientLight[]  = { 0.2,  0.2,   0.2,  1.0};
GLfloat lightColor[]    = { 0.5,  0.5,   0.5, 1.0};

glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambientLight);

glLightfv(GL_LIGHT0, GL_DIFFUSE, lightColor);          
glLightfv(GL_LIGHT0, GL_SPECULAR, lightColor);           
glutSolidSphere(5,50,50);
glPopMatrix();
...
Run Code Online (Sandbox Code Playgroud)

opengl lighting

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

给定浮点数时如何避免FPU?

嗯,这根本不是一个优化问题.

我正在写一个(现在)简单的Linux内核模块,我需要找到一些位置的平均值.这些位置存储为浮点(即float)变量.(我是整个事情的作者,所以我可以改变它,但我宁愿保持漂浮的准确性,如果我可以避免它,也不参与其中).

现在,这些位置值仅存储(或至少用于)内核中的存储空间.一个用户应用程序写入这些数据(通过共享内存(我正在使用RTAI,所以我在内核和用户空间之间共享内存))和其他人从中读取数据.我假设浮点变量的读写不会使用FPU,所以这是安全的.

安全的,我的意思是避免在内核中使用FPU,更不用说某些系统甚至可能没有FPU.我不会使用kernel_fpu_begin/end,因为这可能会破坏我的任务的实时性.

现在在我的内核模块中,我真的不需要太多的精度(因为无论如何平均位置),但我需要它说0.001.我的问题是,如何在不使用FPU的情况下将浮点数转换为整数(原始数字的1000倍)?

我想过从float的位模式中手动提取数字,但我不确定这是不是一个好主意,因为我不确定endian-ness如何影响它,或者即使所有架构中的浮点都是标准的.

c floating-point fpu linux-kernel rtai

3
推荐指数
2
解决办法
2220
查看次数

通过shell-wrapper脚本向C程序添加空格的命令行参数

如何让我的程序接受带空格的命令行参数?

还有另一个编辑:我刚认识到该程序是从一个shell脚本启动的,该脚本为程序的执行设置了环境.由于有一些外部库,LD_LIBRARY_PATH因此设置为当前工作目录:

#!/bin/sh

ARCH=`uname -m`
export LD_LIBRARY_PATH=".:lib/magic/linux-${ARCH}"

./data_sniffer.bin $*

exit $?
Run Code Online (Sandbox Code Playgroud)

这个问题肯定与此有关$*.有没有正确转发命令行参数的解决方案?

以下是来自的代码段main():

if (stat(argv[1], &lStat) != 0)
{   
    fprintf(stderr, "Cannot stat(2) given file: %s. \n", argv[1]);
    return EXIT_FAILURE;
}   
Run Code Online (Sandbox Code Playgroud)

我正在使用以下参数启动我的程序:

./data_sniffer /mnt/pod/movies/some\ test\ movie\ file.avi
Run Code Online (Sandbox Code Playgroud)

生成的错误消息如下所示:无法stat(2)给定文件:/ mnt/pod/movies/some.

谁知道这里有什么问题?我认为我不是第一个遇到这个问题的人(尽管我在这里找不到相关的问题).

c command-line-arguments

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