小编jpa*_*ich的帖子

在管道上使用"tee"时如何将stderr写入文件?

我知道如何使用tee写输出(STDOUT中)aaa.shbbb.out,同时还在终端显示它:

./aaa.sh | tee bbb.out
Run Code Online (Sandbox Code Playgroud)

我现在如何写STDERR一个名为的文件ccc.out,同时还显示它?

unix linux bash

507
推荐指数
10
解决办法
24万
查看次数

在C++中模拟嵌套函数

在C中,以下代码可以考虑我总是使用gcc.

int foo( int foo_var )
{
 /*code*/
  int bar( int bar_var )  
  {
    /*code*/
    return bar_var;
  }
  return bar(foo_var);
}
Run Code Online (Sandbox Code Playgroud)

如何在gcc编译器上实现C++中嵌套函数的相同功能?不介意这看起来像是一个初学者的问题.我是这个网站的新手.

c c++ nested-function

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

当参数列表太长时,如何正确使用"xargs"

有人可以给我一个在下面的操作中使用xargs的例子吗?

tar c $dir/temp/*.parse\
    | lzma -9 > $dir/backup/$(date '+%Y-%m-%d')-archive.tar.lzma
Run Code Online (Sandbox Code Playgroud)

我从bash" / bin/tar:参数列表太长 "中得到错误

特别是我试图对大约4,500个文件进行LZMA压缩; 所以这并不奇怪.我只是不知道如何修改上面使用xargs并摆脱错误!谢谢.

unix linux bash

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

将Visual C++ Studio/Express设置为严格的ANSI模式

我通常使用gcc和-ansi标志在Linux下编程和编译; 但我被迫在Visual C++中完成一项工作,每当我编译我的C代码时,我都会得到所有的微软警告

'fscanf':此函数或变量可能不安全.请考虑使用fscanf_s.

尽管在MSDN Developer的网站上执行了一些设置ANSI C项目的步骤,但我得到了这些,但所有_s("安全")调用都不是ANSI C!

有关将Visual C++ Studio置于严格的仅限ANSI模式的建议吗?

谢谢.

c++ ansi visual-studio visual-c++

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

可以检查它是否在调用时被回调的Shell脚本

我编写了一个依赖于其他服务器响应的脚本(使用wget来提取数据),我希望它始终在后台运行,毫无疑问.我知道一个解决方案就是编写一个包装脚本,它将使用附加的'&'调用我的脚本,但我想避免这种混乱.

有没有办法让bash(或zsh)脚本确定是否用./foo.sh&调用它,如果没有,退出并重新启动它本身?

谢谢大家!

bash shell zsh

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

使用awk打印最后10行特定列

我有下面的awk命令行参数,除了它在整个文件上执行print参数(正如预期)这样做之外.我希望它只是在文件的最后10行(或任意数字)上执行格式化.非常感谢任何建议,谢谢!

我知道一个解决方案是用尾巴管道,但是想坚持使用纯awk解决方案.

awk '{print "<category label=\"" $13 " " $14 " " $15 "\"/>"}' foofile
Run Code Online (Sandbox Code Playgroud)

bash awk

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

神秘词("LPS")出现在Haskell输出列表中

我是Haskell的新手,试图摆弄一些我在现实世界中经常遇到的测试用例.假设我有文本文件"foo.txt",其中包含以下内容:

45.4 34.3 377.8
33.2 98.4 456.7
99.1 44.2 395.3
Run Code Online (Sandbox Code Playgroud)

我正在尝试生成输出

[[45.4,34.3,377.8],[33.2,98.4,456.7],[99.1,44.2,395.3]]
Run Code Online (Sandbox Code Playgroud)

我的代码在下面,但我在输出中得到一些虚假的"LPS"......不确定它代表什么.

import qualified Data.ByteString.Lazy.Char8 as BStr
import qualified Data.Map as Map

readDatafile = (map (BStr.words) . BStr.lines)

testFunc path = do
    contents <- BStr.readFile path
    print (readDatafile contents)
Run Code Online (Sandbox Code Playgroud)

当使用testFunc"foo.txt"调用时,输出为

[[LPS ["45.4"],LPS ["34.3"],LPS ["377.8"]],[LPS ["33.2"],LPS ["98.4"],LPS ["456.7"]],[LPS ["99.1"],LPS ["44.2"],LPS ["395.3"]]]
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏!谢谢.PS:使用ByteString,因为这将在未来用于大量文件.

编辑:

我也很困惑为什么输出列表如上所述(每个数字都绑定在[])中,当在ghci中时,下面的行给出了不同的排列.

*Main> (map words . lines) "45.4 34.3 377.8\n33.2 98.4 456.7\n99.1 44.2 395.3"
[["45.4","34.3","377.8"],["33.2","98.4","456.7"],["99.1","44.2","395.3"]]
Run Code Online (Sandbox Code Playgroud)

haskell bytestring

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

在传递给mysql_query之前,有效地转义C中的引号

简而言之,我通常使用sprintf在C中构建MySQL查询

sprintf(sqlcmd,"update foo set dog=\"lab\" where description=\"%s\"",some_desc);
mysql_query(some_conn,sqlcmd);
Run Code Online (Sandbox Code Playgroud)

然而,如果some_desc就像Crazy 5"Dog,那么MySql Server会尖叫,因为它对悬空引用感到困惑.

在C中,最好是扫描some_desc替换"with"",或者在MySql中有一个函数可以更好地包装它...即description = string(Crazy 5"Dog)?

谢谢!

c mysql sql

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

生成字符串并在运行时将其作为程序执行

这是一个难以理解的问题,我不确定它的正确用语是什么(如果有的话).我很好奇什么语言允许你在程序执行期间"构建"一个字符串,然后作为程序的一部分执行它.我所知道的唯一一种允许你这样做的语言是Snobol.

然而,阅读Tcl的维基百科条目,听起来它也可以做到这一点?

我一直认为这是一个很好的功能,即使它可能没有太多使用.谢谢.

PS:会用Snobol,Spitbol标记这个,但没有创建新标签的声誉.

programming-languages eval metaprogramming multistage snobol

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

static char数组在类之间意外地表现

我知道这会有一个简单的答案,但我很难过.我尽可能地简化了代码以达到目的.

我有一个简单的头文件,调用它啊

它具有以下内容而已(仅适用于我项目中选择包含它的所有文件的全局设置文件)

#ifndef A_H
#define A_H
namespace settings{
   static char name[16]={'\0'};
}
#endif
Run Code Online (Sandbox Code Playgroud)

然后我有另一个类,有自己的头文件,我们称之为b.cpp(bh未显示)

#include "a.h"

void B::doSomething()
{
    strcpy(settings::name,"I like Dogs");
}
Run Code Online (Sandbox Code Playgroud)

最后,访问'settings :: name的第三个类,称之为c.cpp(ch未显示)

#include "a.h"

void C::printSomething()
{
    printf("Some Girls Say %s\n",settings::name);
}
Run Code Online (Sandbox Code Playgroud)

唉,所有打印的都是"Some Girls Say".是什么赋予了?我不明白settings :: name是如何不存活B :: doSomething()的功能破坏(我只能猜测这是问题).strcpy是懒惰的,只是将settings :: name指向"I Like Dogs"开始而不是实际上像strdup一样?

非常感谢任何帮助和解决方法.谢谢!

编辑:为了进一步清晰,在C.printSomething()之前调用B.doSomething().

c++ pointers

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