小编Kei*_*son的帖子

打印返回结构的成员

我在打印从函数返回的结构的成员时遇到问题:

#include <stdio.h>

struct hex_string
{
    char a[9];
};

struct hex_string to_hex_string_(unsigned x)
{
    static const char hex_digits[] = "0123456789ABCDEF";
    struct hex_string result;
    char * p = result.a;
    int i;
    for (i = 28; i >= 0; i -= 4)
    {
        *p++ = hex_digits[(x >> i) & 15];
    }
    *p = 0;
    printf("%s\n", result.a);   /* works */
    return result;
}

void test_hex(void)
{
    printf("%s\n", to_hex_string_(12345).a);   /* crashes */
}
Run Code Online (Sandbox Code Playgroud)

printf呼叫内to_hex_string_打印出正确的结果,但printf调用内部test_hex崩溃我的程序.究竟是为什么呢?这是一生的问题,还是别的什么?

当我用这个替换printf …

c arrays struct return-value lvalue

16
推荐指数
2
解决办法
843
查看次数

使用类似文件的C字符串*

我有一个C函数,可以从中读取字符流FILE*.

FILE*在这种情况下,我如何从字符串创建一个?

编辑:

我认为我的原帖可能会产生误导.我想FILE*从一个文字字符串值创建一个,以便生成的结果FILE*就像某个文件某处包含字符串而不实际创建文件一样.

以下是我想做的事情:

void parse(FILE* f, Element* result);

int main(int argc, char** argv){
    FILE* f = mysteryFunc("hello world!");
    Element result;
    parse(f,&result);
}
Run Code Online (Sandbox Code Playgroud)

c file-pointer

16
推荐指数
2
解决办法
4748
查看次数

Crontab - 简单的echo不运行

我有这样的情况:我想在linux服务器上安排crontab的工作.我不是超级用户,所以我正在编辑(使用crontab -l,编辑器vim)只有我的crontab文件.为了测试,我把它放在那里:

* * * * * echo asdf
Run Code Online (Sandbox Code Playgroud)

这项工作没有开始.是否需要重启服务器?或者也许有些管理员搬家?

linux cron scheduling

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

我应该使用rand()还是rand_s()?

我正在尝试用C++获取一个随机数,我正在使用它rand().这就是cpplint所说的:

考虑使用rand_r(...)而不是rand(...)改善线程安全性.

我正在转向rand_r,这就是cppcheck所说的:

已过时的函数'rand_r'被调用.建议使用"rand"功能.

谁是对的?

c++

14
推荐指数
1
解决办法
1707
查看次数

防止将uint64_t转换为uint16_t

为什么以下代码在clang ++中编译?

是否有任何c ++标志来防止这种情况发生 - 我希望编译器抛出错误,因为我将std :: uint64_t作为参数传递给接受std :: uint16_t的函数.

#include <cstdint>
using namespace std;

void foo(uint16_t x) {
}

int main() {
    uint64_t x = 10000;
    foo(x);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ clang c++11

14
推荐指数
4
解决办法
1444
查看次数

Unix:猫本身做什么?

data=$(cat)在bash脚本中看到了这一行(只是声明一个空变量)并且对于可能做的事情感到困惑.

我阅读了手册页,但它没有这方面的例子或解释.这会捕获stdin或其他东西吗?关于这个的任何文件?

编辑:特别是如何做data=$(cat)它允许它运行这个钩子脚本?

#!/bin/bash 

# Runs all executable pre-commit-* hooks and exits after, 
# if any of them was not successful. 
# 
# Based on 
# http://osdir.com/ml/git/2009-01/msg00308.html 

data=$(cat) 
exitcodes=() 
hookname=`basename $0` 

# Run each hook, passing through STDIN and storing the exit code. 
# We don't want to bail at the first failure, as the user might 
# then bypass the hooks without knowing about additional issues. 

for hook in $GIT_DIR/hooks/$hookname-*; do 
   test -x "$hook" || …
Run Code Online (Sandbox Code Playgroud)

unix linux bash shell

14
推荐指数
2
解决办法
744
查看次数

如何动态定义ruby中的实例方法?

我想通过父类的类方法动态创建子类的实例方法.

class Foo
  def self.add_fizz_method &body
    # ??? (This is line 3)
  end
end

class Bar < Foo
end
Bar.new.fizz #=> nil

class Bar
  add_fizz_method do
    p "i like turtles"
  end
end
Bar.new.fizz #=> "i like turtles"
Run Code Online (Sandbox Code Playgroud)

在第3行写什么?

ruby metaprogramming

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

更改密码,访问令牌无效

Facebook页面的网站摘要已损坏,我收到以下消息:

"message":"Error validating access token: The session has been invalidated 
  because the user has changed the password.",
"type":"OAuthException","code":190,"error_subcode":460
Run Code Online (Sandbox Code Playgroud)

类似的问题已经被问到,但我注意到其中一些已经很老了,我想确保答案是最新的.

我可以在不重新申请新令牌的情况下解决错误吗?

passwords facebook token

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

Cron"步骤"如何运作?

我遇到的情况是,我认为每55分钟运行一次的cron工作实际上是在一小时后的55分钟最高时间运行.实际上,它不是一个cron工作,但它是一个使用cron语法的PHP调度应用程序.

当我要求此应用程序每隔55分钟安排一个作业时,它会创建一个如下所示的crontab行.

*/55 * * * *
Run Code Online (Sandbox Code Playgroud)

这个crontab行最终没有每55分钟运行一次作业.相反,工作在工作时间后的55分钟和最高时间运行.我不希望这样.我通过cron测试器运行它,它验证了不良行为是正确的cron行为.

这让我想起了/实际意味着什么.当我查看cron手册时,我学会了斜线表示"步骤",但手册本身有点模糊,这意味着

步长值可与范围结合使用.在带有" <number>" 的范围之后,指定在该范围内跳过数字的值.例如,0-23/2可以在小时字段中使用" "来指定每隔一小时执行一次命令(V7标准中的替代方法是" 0,2,4,6,8,10,12,14,16,18,20,22").星号后也允许步骤,所以如果你想说"每两个小时",只需使用" */2".

手册的描述("指定通过范围跳过数字的值")有点模糊,"每两个小时"的例子有点误导(这可能导致应用程序中的错误)

那么,有两个问题:

  1. unix cron程序如何使用"步骤"信息(斜杠后的数字)来决定是否应该跳过运行作业?(模块化划分?如果是这样,关于什么?决定"真正"运行的条件是什么,哪些决策不是?或者是其他什么?)

  2. 是否可以将unix cron作业配置为每隔"N"分钟运行一次?

unix cron

13
推荐指数
1
解决办法
6770
查看次数

为什么std :: string没有隐式转换为bool

有没有理由在c ++ std::string中没有隐式转换为bool?例如

std::string s = ""
if (s) { /* s in not empty */ }
Run Code Online (Sandbox Code Playgroud)

和其他语言一样(例如python).我认为使用这种empty方法很繁琐.

c++ string casting boolean

13
推荐指数
3
解决办法
5832
查看次数