Articles of unix

stdout线程安全在Linux上的C?

在Linux上使用printf线程安全写入标准输出? 那么使用底层write命令呢?

在Windows命令提示符中使用shebang / hashbang

我正在使用服务脚本来在Windows 7上提供Node.js的目录。它在MSYS shell或sh运行良好,因为我已经把node.exe和服务脚本放在了我的〜/ bin中在我的PATH上),而input“serve”是因为它是Shebang ( #! )指令,它告诉shell使用节点运行它。 但是,Windows命令提示符似乎不支持没有* .bat或*。exe扩展名的普通文件,也不支持shebang指令。 是否有任何registry项或其他黑客,我可以强制从内置的cmd.exe这种行为? 我知道我可以写一个简单的batch file来运行它,但是我想知道是否可以在一个内置的fasion中完成,所以我不必为每个脚本写一个脚本? 更新:其实,我在想,是否有可能为所有'找不到的文件'编写一个默认的处理程序,我可以自动尝试在sh -c执行? 谢谢。

Powershell在windows和unix中正确生成文件path

我想为PowerShell脚本中的文件path生成一个string。 我希望这在Windows和Mac都可以工作。 目前代码被硬编码到窗口中,如path(“\” – > windows,“/” – > unix): $templatep="$CoreRoot\templates\$serviceName" 我改变了这个: $templatep= Join-Path $CoreRoot "templates" $serviceName它在与Powershell 6.0的mac中工作。 但它不能在我的Windows服务器与Powershell 4.我必须做这样的事情: $templatep= Join-Path $CoreRoot -ChildPath "templates" | Join-Path -ChildPath $serviceName 任何想法,为什么这只是在我的Mac? 这是在PowerShell 5或6的新function? 我不喜欢pipe道多个joinpath。 有一个更好的方法吗? 谢谢!

我怎样才能把初始的inputinput进来,然后互动呢?

我希望能够在启动一个交互过程时注入一个初始命令,以便我可以这样做: echo "initial command" | INSERT_MAGIC_HERE some_tool tool> initial command [result of initial command] tool> [now I type an interactive command] 什么不行: 只是pipe道的初始命令不起作用,因为这导致stdin没有连接到terminal 写入/ dev / pts / [number]会将输出发送到terminal,而不是input到进程中,就好像它来自terminal 什么将会有缺点: 做一个命令,分出一个孩子,写入它的标准input,然后转发一切从它自己的标准input。 下行 – terminal控制的东西(如线条与字符模式)将无法正常工作。 也许我可以用代理伪terminal做些什么? 做一个修改后的xterm版本(我正在为这个任务启动一个),用命令行选项在遇到所需的提示string后注入其他命令。 丑陋。 做一个我试图运行的工具的修改版本,以便它接受命令行上的初始命令。 打破标准安装。 (顺便提一句,目前感兴趣的工具是android的adb shell – 我想在手机上打开一个交互式shell,自动运行一个命令,然后进行交互式会话)

关于目录中的单点和双点

每当我们使用这个命令: dir –> in Windows 和 dir -a –> in Unix 我们看到2种点: . .. 出现在目录中。 现在在Stephens Rago的APUE中,它说这些是文件名,有些书上说这些是目录。 无论如何这些点是什么? 如果可能,请提供Windows和Unix的答案。

UNIX系统和Windows系统中读取.CSV文件的差异

我已经创build了一个JSP代码,我们可以上传一个.csv文件。 JSP代码由读取.csv文件的Java代码支持,并将文件中的URL与数据库进行比较,如果URL尚不存在,则将其添加到数据库中。 上面的场景在windows系统中执行的时候是绝对正常的。 我将成功执行的Web应用程序文件夹上传到unix系统。 当我在UNIX系统中执行程序时,该工具不会将URL与数据库进行比较并添加它。 我怀疑读取UNIX系统中的.csv文件时应该有些问题。 我使用Fedora(Linux)操作系统。 请让我知道在windows系统和unix系统之间读取.csv文件是否有任何差异。 我正在使用的.csv文件具有以下内容, HTTP://www.topix.com,sdfasdf http://rss.news.yahoo.com/rss/topstories,Apple http://www.apple.com/354,sdfasdf http://www.topix.com/rss/city/emporia-ks,sdfasdf http://www.topix.com/rss/,sdfasdf http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/ws/RSS/topsongs/limit=10/xml,sdfasdf http://www.topix.com/rss/city/emp,sdfasdf http://www.topix.com/rss/city/sandy-ut,dfgsdfg HTTP://www.apple.com,Yahoo JEFF的更新 try { List items = uploadHandler.parseRequest(request); Iterator itr = items.iterator(); while(itr.hasNext()) { FileItem item = (FileItem) itr.next(); if(item.isFormField()) { out.println("File Name = "+item.getFieldName()+", Value = "+item.getString()); } else { File file = new File(destinationDir,item.getName()); item.write(file); //String […]

如何为跨平台c ++开发设置visual studio

经过一段时间主要是.net开发,我需要以跨平台的方式在C ++中工作。 我不想放弃visual studio,所以我的希望是可以使用visual studio和windows target作为testbuild,然后每隔一段时间通过vmtesting一下linux或者mac上的代码。 有没有人有如何最好地设置这个经验? 我特别好奇你如何确保项目文件等与* nix平台上可能需要的make文件保持同步。

是否可以在文件名中使用“/”?

我知道这不是应该做的事情,但有没有办法使用斜杠字符,通常在Linux中分隔文件名中的目录?

在dos命令提示符下是否存在与bash或tcsh中的等效源命令?

我知道,在unix世界中,如果编辑.profile或.cshrc文件,可以使用source〜/ .profile或source〜/ .cshrc来获取当前会话的效果。 如果我在Windows系统variables中更改了某些内容,如何在不退出命令提示符会话并打开另一个命令提示符会话的情况下使当前命令提示符会话生效?

在ClearCase diff中input输出错误。 不正确的说法

我有一个用户在尝试访问他人的视图时遇到错误。 当他们尝试做差异他们input/输出错误在xcompare在unix和他们收到的窗口,他们收到未能显示版本树浏览器的元素在Windows端遭遇不当的参数 。 在用户看来,我没有任何问题。 他们都是正确的小组的成员,并与该小组一起创build了视图。 还有什么可能是错的?