草庐IT

UNIX-based

全部标签

c++ - MinGW 可以毫不费力地复制大多数 unix 系统调用吗?

背景:我正在移植一个专门为unix系统用C++开发的大型项目,以便与Windows兼容,从而为最终的Windows分发让路。我在Windows开发方面没有太多经验,但我想在高级开发人员进入并接管之前,尽我所能,把事情做好。问题:一段时间以来,我一直在查找软件中使用的所有unix/posix调用的Windows版本,大部分来自dirent.h、unistd.h,还有一些在sys下,例如sys/stat.h或sys/types.h。尽管修改程序以采用新的Win32API调用约定和返回类型(有时是所有新函数)需要大量工作,但它最终可能会起作用。但我经常看到这种情况出现,事实上MinGW,我猜

windows - 为什么我的文件需要 dos2unix?虽然只在 eclipse 中

当我在eclipse中打开一个文件时,它显示不正确的行间距,显示每行之间有一个额外的换行符。当我用记事本或写字板打开文件时,它不会显示这些只有eclipse显示的额外换行符。我如何让Eclipse在没有换行符的情况下读取这些文件,例如记事本和写字板?-edit:我的所有文件都没有这个问题,但只有少数几个我进行了本地更改>将它们上传到我们的太阳站>然后将这些文件拉回到我的本地工作站以供将来修改。 最佳答案 Eclipse应该有一个File->ConvertLineDelimitersTo...选项可以为您纠正这个问题。(如果它对您的文

windows - 缓冲区溢出 - Windows 与 Unix

我正在尝试找出Windows和Unix中缓冲区溢出之间的安全问题。据我了解,缓冲区溢出Windowshack无法在Unix中实现,因为每个进程都有自己的内存空间。这是否意味着Windows中的进程共享内存空间? 最佳答案 共享内存空间不是大多数缓冲区溢出攻击的原因。自Win3.0(或运行在80286上的Win3.1)以来,Windows没有共享内存,因此自从Windows上次发布支持共享内存模型以来已经过去了很长时间,将近20年。缓冲区溢出允许攻击者更改正在被利用的进程中的内存。通过这样做,攻击者旨在使用目标进程的特权级别执行系统操

c++ - 将 Unix 可执行文件转换为 Windows 可执行文件

我在MacBookPro上使用Eclipse编译并运行了一个C++程序。我现在需要将Unix可执行文件转换为Windows可执行文件。我该怎么做?具体来说,如何让此代码从命令提示符在Windows机器上运行? 最佳答案 让unix可执行文件在Windows系统上运行的唯一方法是使用虚拟机(类似于VMWare或VirtualBox)。当然,这并不是真的在Windows上运行它,而是在Windows上设置UNIX系统并在该UNIX系统上运行它。两个系统之间的可执行文件(和所需的运行时环境)有很大不同,您不能只从一个系统运行另一个系统的可

c++ - 窗口 C++ : how to timeout receiveFrom function in a udp based conversation

我正在尝试在UDP之上创建可靠的服务。如果没有数据包到达,我需要超时windowc++的receiveFrom函数在指定的时间。在Java中,我这样做DatagramSocket.setSoTimeout但我不知道如何在WindowsC++中实现这一点。谢谢 最佳答案 看看setsockopt()特别是SO_RCVTIMEO。 关于c++-窗口C++:howtotimeoutreceiveFromfunctioninaudpbasedconversation,我们在StackOverfl

windows - Vim(7.3.3 Windows 64 位): Add ^M to end of line if there is none (ff=unix)

我有大约100,000多个文件,其中包含部分损坏的数据、混合文本+二进制文件(带有httpheader的jpg图像数据的单个文件),其中一些header字段具有dos样式^M^J行终止,而一些仅unix风格^J。当vim打开这样的文件时,它会将其视为unix格式。因此,所有没有^M的标题行都需要添加一个。但这已被证明是非常艰难的。:1,11s/Cache-Control:.*\zs^M\{0,}$/^M/不起作用,我已经尝试了各种变体,甚至使用\=printf("%s","^M")作为替换字符串。但结果始终是文件中的新空行。我能够通过命令添加^M的唯一方法是通过:exe"normalA

windows - 如何计算在windows批处理中编码的sha1 base64?

我正在尝试在Windows批处理文件中获取base64编码的sha1哈希。我尝试的第一件事是使用perl:perl-M"Digest::SHA1qw(sha1_base64)"-e"open(F,shift)ordie;binmodeF;printsha1_base64(),qq(=\n)""test.mxf"这很好用,但只适用于小文件。对于大文件,它会显示“内存不足”。然后我下载了一个适用于windows的openssl版本并尝试了这个:"C:\openssl.exe"dgst-sha1-binary-out"hash_sha1.txt""C:\test.mxf"set/phash_

python - 如何从 base64 编码的字符串创建临时文件?

如何从编码字符串创建一个文件到临时文件中,然后执行它? 最佳答案 您可能会对tempfilemodule感兴趣,以及base64和execfile.顺便说一句,您可能想提供更多有关您要完成的工作的详细信息。这听起来很有可能是一个坏主意、不必要的工作,或者两者兼而有之。 关于python-如何从base64编码的字符串创建临时文件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6

java - Windows和Unix上传下载动态转换的高效方式

要求是Upload来自txt,zip,doc,csv,xls的任何类型的一个或多个文件(如Window,...)至Unix系统使用JSP/Java网页。系统必须动态转换Char-set,EOL等等...来自Windows的东西至Unix支持的格式。注意:上传文件也可以是Unix格式。同样,如果用户想要下载相同的文件或不同的文件(存在于Unix文件系统中),它必须转换为Windows支持的格式。我试过了,写了一个perl脚本来转换这两种方式。在上传/下载文件之后/之前,系统会调用相应的脚本进行格式转换。dos2unix.shperl-pi-e's/\r\n?/\n/g'filenameu

windows - 为 Unix 系统转换 Windows .cpp 文件?

我有一个我在Windows8计算机上编写的.cpp文件,我试图通过PuttySSH客户端将其代码粘贴到我的学校基于Unix的系统中。在Unix机器上使用的编辑器是Vi编辑器。当我从我的Windows计算机中的.cpp文件中复制所有代码并右键单击Vi编辑器并粘贴时,代码出现了,但它到处都是,我什至无法阅读它(我很确定它不会'也不编译)。有没有办法修复它,使代码在Vi编辑器中保持其格式?感谢您的帮助! 最佳答案 通常有一个名为dos2unix的unix实用程序和一个名为unix2dos的实用程序可以将您的文件转换为dos或unix格式。