我有一个文件,我目前发送的电子邮件是这样的
/usr/sbin/sendmail me@gmail.com < f1.txt
Run Code Online (Sandbox Code Playgroud)
我对文件进行了一些更改,以便它包含一个占位符,我使用sed进行调整
sed -e s/PLACEHOLDER/TEST/g f1.txt
Run Code Online (Sandbox Code Playgroud)
我如何结合2?我以为会这样做
/usr/sbin/sendmail me@gmail.com <(sed -e s/PLACEHOLDER/TEST/g f1.txt)
Run Code Online (Sandbox Code Playgroud)
但那"挂起".谁能指出我正确的方向?
我从开发中分支出一个功能。我在该功能分支上做了几次提交。然后,我将该功能分支合并回开发中,并将所有内容推到原点。
我只是注意到 git 做了一个我并不真正想要的快进。是否可以恢复该合并?在 git log 中没有合并的提交(当我这样做时也没有要求我发表评论)。
如果重要的话,自从我推动合并以来,一切都没有改变。
有没有办法可以更改 EGit 将克隆我导入(克隆)的 git 存储库的默认目录?
它目前设置为~/git,我真的不想每次这样做时都点击整个目录系统。
今天我在c ++ 11上做了一些追赶(因为我们还没有继续前进).像很多人所说的那样切换的原因之一似乎是lambda表达式.我仍然不确定他们如何提供新的东西.
例如使用c ++ 11:
#include <iostream>
int main()
{
auto func = [] () { std::cout << "Hello world" << std::endl; };
func();
}
Run Code Online (Sandbox Code Playgroud)
似乎非常相似:
#include <iostream>
#define FUNC( )\
do { std::cout << "Hello world" << std::endl; } while(0)
int main()
{
FUNC();
}
Run Code Online (Sandbox Code Playgroud)
lambda表达式为我提供了什么,我目前还不能做到?
虽然通过一些c ++代码作为PCI DSS认证审核的一部分,但我发现了以下内容:
我在我们使用的某个库中有一个方法,其中一个参数是char*,让我们说这是
void foo(char* arg);
Run Code Online (Sandbox Code Playgroud)
代码中调用此方法的点如下所示:
char mystring[256];
strcpy(mystring, "some value");
....
foo(mystring);
Run Code Online (Sandbox Code Playgroud)
作为评论的一部分,我们正在摆脱任何strcpy调用(尽管在这个例子中它有点微不足道,因为"某些值"明显适合mystring)
所以我们得到:
char mystring[256];
strncpy(mystring, "some value", sizeof(mystring));
mystring[sizeof(mystring)-1] = '\0';
....
foo(mystring);
Run Code Online (Sandbox Code Playgroud)
这是因为我想
foo("some value")
Run Code Online (Sandbox Code Playgroud)
会通过一个 const char *
令我惊讶的是,编译器(gcc 4)对此非常满意.当我添加-Wall或-Wcast-qual时,它甚至不会发出任何警告
我的问题是:当我不知道foo实际上在做什么(如果有的话)时,我可以安全地调用foo("某些值")吗?