可以说我在Bash中有一个循环:
for foo in `some-command`
do
do-something $foo
done
Run Code Online (Sandbox Code Playgroud)
do-something是cpu绑定,我有一个漂亮闪亮的4核处理器.我希望能够一次跑到4 do-something岁.
天真的做法似乎是:
for foo in `some-command`
do
do-something $foo &
done
Run Code Online (Sandbox Code Playgroud)
这将运行所有 do-something s的一次,但有几个缺点,主要是做多岁的也有一些显著I/O执行其全部一次可能会慢一点.另一个问题是这个代码块立即返回,所以当所有的do-somethings完成时,没办法做其他工作.
你怎么写这个循环所以总是有X do-something一次运行?
我目前使用AnkhSVN将subversion集成到Visual Studio中.有什么理由我应该切换到VisualSVN吗?
AnkhSVN是免费的(不止一个意思),而VisualSVN的价格是50美元.所以,除非我错过了VisualSVN的一些很棒的功能,否则我没有看到任何切换的理由.
我正在尝试解析类似于的国际日期时间字符串:
24-okt-08 21:09:06 CEST
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有类似的东西:
CultureInfo culture = CultureInfo.CreateSpecificCulture("nl-BE");
DateTime dt = DateTime.ParseExact("24-okt-08 21:09:06 CEST",
"dd-MMM-yy HH:mm:ss ...", culture);
Run Code Online (Sandbox Code Playgroud)
问题是我应该在格式字符串中使用'...'?查看自定义日期和时间格式字符串 MSDN页面似乎没有列出用于以PST/CEST/GMT/UTC格式解析时区的格式字符串.
我正在努力在单元测试下获取一些遗留代码,有时感知现有程序行为的唯一方法是从控制台输出.
我在网上看到很多关于如何将stdout重定向到C++中的另一个文件的例子,但有没有办法可以将它重定向到内存中的流,这样我的测试就不必依赖磁盘了?
我希望将遗留代码发送到stdout的任何内容转换为std :: string,这样我就可以轻松地查找输出.
编辑
遗留代码是如此糟糕,以至于用户混合使用cout << ..和printf.这是我到目前为止:
void TestSuite::setUp(void)
{
oldStdoutBuf = std::cout.rdbuf();
std::cout.rdbuf(consoleOutput.rdbuf());
}
void TestSuite::tearDown(void)
{
std::cout.rdbuf(oldStdoutBuf);
}
Run Code Online (Sandbox Code Playgroud)
问题是,这并没有用printf捕捉输出.我想要两件兼得的东西.有任何想法吗?
我正在使用XMLHttpRequest下载一个网页(标签汤HTML),我想获取输出并将其转换为DOM对象,然后我可以运行XPATH查询.如何从字符串转换为DOM对象?
似乎一般的解决方案是创建一个隐藏的iframe并将字符串的内容抛入其中.已经有议论更新的DOMParser支持文本/ HTML,但像Firefox 3.0.1你仍然可以获得一个NS_ERROR_NOT_IMPLEMENTED,如果你尝试.
除了使用隐藏的iframe技巧之外还有其他选择吗?如果没有,那么执行iframe技巧的最佳方法是什么,以便您的代码在任何当前打开的选项卡的上下文之外工作(这样关闭选项卡不会搞砸代码等)?
这是为什么我正在寻找除iframe黑客之外的解决方案的一个例子,如果我必须编写所有代码以获得强大的解决方案,那么我宁愿继续寻找其他东西.
在右键单击.aspx页面时,在Visual Studio 2010(RC)中不再有"浏览"上下文菜单.如何更改默认浏览器?
默认情况下它似乎使用操作系统默认浏览器,但我更喜欢在调试ASP.net应用程序时使用IE.(我用ASP.net MVC 2测试这个)
我最近从一家小型咨询公司的员工转变为独立顾问,随着时间的推移,我将需要升级Windows和Visual Studio.那么对于小型开发者来说,最实惠的方法是什么?
我以前的老板建议我获得操作系统许可证的TechNet Plus订阅,我已经完成了这个并且似乎是我需要的,但是对未来开放的其他选项.
Visual Studio我很难弄清楚Professional和Standard之间究竟有什么区别.另外我真的很喜欢数字版,但似乎昂贵的MSDN订阅是唯一的方法吗?
此处列出的带有MSDN Professional的Visual Studio 2008 Professional 似乎半合理定价为1,199美元.这将使TechNet Plus订阅不再需要.
在Windows上,我可以这样做:
HANDLE hCurrentProcess = GetCurrentProcess();
SetPriorityClass(hCurrentProcess, ABOVE_NORMAL_PRIORITY_CLASS);
Run Code Online (Sandbox Code Playgroud)
我怎么能在*nix上做同样的事情?
我想设置一个cron作业来将远程系统rsync到备份分区,例如:
bash -c 'rsync -avz --delete --exclude=proc --exclude=sys root@remote1:/ /mnt/remote1/'
Run Code Online (Sandbox Code Playgroud)
我希望能够"设置它并忘记它"但是如果没有/mnt/remote1安装会怎么样?(重启后或其他什么)我想错误,如果/mnt/remote1没有挂载,而不是填补本地文件系统.
编辑:
这是我为脚本提出的,清理改进升值(特别是对于空的然后...其他,我不能留空或bash错误)
#!/bin/bash
DATA=data
ERROR="0"
if cut -d' ' -f2 /proc/mounts | grep -q "^/mnt/$1\$"; then
ERROR=0
else
if mount /dev/vg/$1 /mnt/$1; then
ERROR=0
else
ERROR=$?
echo "Can't backup $1, /mnt/$1 could not be mounted: $ERROR"
fi
fi
if [ "$ERROR" = "0" ]; then
if cut -d' ' -f2 /proc/mounts | grep -q "^/mnt/$1/$DATA\$"; then
ERROR=0
else
if mount /dev/vg/$1$DATA /mnt/$1/data; then
ERROR=0
else …Run Code Online (Sandbox Code Playgroud) 如何将未知字符串转义为传递给Process.Start作为参数?
我目前正在逃避基本的引号和反斜杠,但最近我的输入开始包含http://www.fileformat.info/info/unicode/char/ff02/index.htm(全宽引号)等内容.
所以我的问题是,我需要逃避什么才能安全地传递一个字符串作为Process.Start的参数?
编辑: 所以我需要澄清一下.我真正想要的是一个必须在cmd.exe的带引号的字符串("foo")中转义的所有字符的列表.我最初处理双引号字符以及反斜杠字符,但我最终有一些输入包含一个全宽带引号(如上所述),它也需要转义.所以问题是,对于使用Process.Start传递给cmd.exe的带引号的字符串参数,我还需要转义什么?