- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在将一个为 Unix 编写的相对简单的控制台程序移植到 Windows 平台 (Visual C++ 8.0)。所有源文件都包含“unistd.h”,它不存在。删除它后,我收到有关“srandom”、“random”和“getopt”原型(prototype)缺失的投诉。我知道我可以替换随机函数,而且我很确定我可以找到/破解一个 getopt 实现。
但我相信其他人也遇到过同样的挑战。我的问题是:Windows 是否有“unistd.h”端口?至少一个包含那些确实具有 native Windows 实现的功能 - 我不需要管道或 fork 。
编辑:
我知道我可以创建自己的“unistd.h”,其中包含我需要的东西的替代品 - 特别是在这种情况下,因为它是一个有限的集合。但由于这似乎是一个常见问题,我想知道是否有人已经为更大的功能子集完成了这项工作。
在工作中无法切换到不同的编译器或环境 - 我被 Visual Studio 困住了。
最佳答案
由于网上找不到版本,就从这里开始吧。
大多数 Windows 端口可能只需要完整 Unix 文件的一个子集。
这是一个起点。请根据需要添加定义。
#ifndef _UNISTD_H
#define _UNISTD_H 1
/* This is intended as a drop-in replacement for unistd.h on Windows.
* Please add functionality as neeeded.
* https://stackoverflow.com/a/826027/1202830
*/
#include <stdlib.h>
#include <io.h>
#include <getopt.h> /* getopt at: https://gist.github.com/ashelly/7776712 */
#include <process.h> /* for getpid() and the exec..() family */
#include <direct.h> /* for _getcwd() and _chdir() */
#define srandom srand
#define random rand
/* Values for the second argument to access.
These may be OR'd together. */
#define R_OK 4 /* Test for read permission. */
#define W_OK 2 /* Test for write permission. */
//#define X_OK 1 /* execute permission - unsupported in windows*/
#define F_OK 0 /* Test for existence. */
#define access _access
#define dup2 _dup2
#define execve _execve
#define ftruncate _chsize
#define unlink _unlink
#define fileno _fileno
#define getcwd _getcwd
#define chdir _chdir
#define isatty _isatty
#define lseek _lseek
/* read, write, and close are NOT being #defined here, because while there are file handle specific versions for Windows, they probably don't work for sockets. You need to look at your app and consider whether to call e.g. closesocket(). */
#ifdef _WIN64
#define ssize_t __int64
#else
#define ssize_t long
#endif
#define STDIN_FILENO 0
#define STDOUT_FILENO 1
#define STDERR_FILENO 2
/* should be in some equivalent to <sys/types.h> */
typedef __int8 int8_t;
typedef __int16 int16_t;
typedef __int32 int32_t;
typedef __int64 int64_t;
typedef unsigned __int8 uint8_t;
typedef unsigned __int16 uint16_t;
typedef unsigned __int32 uint32_t;
typedef unsigned __int64 uint64_t;
#endif /* unistd.h */
关于c++ - 是否有适用于 Windows (Visual C) 的 unistd.h 的替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/341817/
我不完全确定我理解 substitute 的作用,尽管我以前在它的代码中使用过。今天在shiny::exprToFunction中遇到了如下几行代码: function (expr, env = pa
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我最近发现了 crockford 的 Javascript supplant 函数。函数是这样的—— if (!String.prototype.supplant) { String.prot
在我工作的一些项目中,添加了一些具有这种语法的 block : var [code, name] = input.split("/"); console.log(code); console.log(
我对 JavaBeans 模式的憎恨就像一千个太阳的火焰一样燃烧。为什么? 冗长。现在是 2009 年。我不应该为一个属性写 7 LOC。如果他们有事件监听器,请捕获你的帽子。 没有类型安全的引用。没
是否有比 PHP 执行速度更快且具有相同功能集(例如对常见 RDBMS、Curl、Regex 等的支持)的替代品? 用 C 编写网站代码怎么样?效果如何?该平台是否独立并在每台服务器上运行? 最佳答案
我正在开始新项目。客户端界面基于 GWT(和 GXT),我没有说它是预先确定的。但是,我可以选择服务器端,这样我就可以玩得开心,并希望在这个过程中学到一些新东西。一些要求是: 与服务器的交换将通过使用
我目前使用 CentOS 5.6(Ghostscript 8 - ImageMagick-6.2.8) 我正在尝试将 pdf 的第一张图像转换为 jpg 文件。 我知道我当前的设置无法转换压缩的 pd
2021 年更新: 只使用 MathJax;您不应该再支持旧版本的 IE。 我想使用 MathJax 来显示 MathML 方程,但它在 IE 中的性能慢得令人无法接受(是的,我读过使用 Emulat
BinaryFormatter 序列化的 128³ 数组加倍,占用 50 MB 空间。序列化具有两个双字段的 128³ 结构数组需要 150 MB 和超过 20 秒的处理时间。 是否有快速简单的替代方
我发现 $.each 非常慢,如果包含大量各种 jQuery 效果,会给网页带来问题。 我想知道 $.each 是否有一个好的替代方案,例如: $('ul li').each(function() {
我正在编写一个Mac应用程序,它提供类似“测试”的功能。此应用程序(通过与服务器的连接)。基本上,该应用程序将为学生提供一个故事供阅读,然后是一系列问题(也来自服务器),用户可以(尝试)选择正确的答案
我喜欢 WPF,但我讨厌 XAML。 XAML 过于冗长,在 Microsoft 尝试对其进行扩展时出现语法问题(请参阅 StringFormat on Bindings),并且难以导航。 XAML
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足 Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以
有没有类似 SoftwareFx 的 PowerGadgets 的产品?我正在查看支持自动刷新的 powershell 的仪表控件。 最佳答案 检查 ShowUI 模块。 http://showui.
我正在开发一个项目,其中页面需要能够根据服务器的状态保持更新。 我喜欢 websocket,因为它们为我提供了一种从服务器推送消息的方法,但可用性是一个问题。 我需要通用方法在网络服务器和浏览器客户端
我最近一直在使用 openX 自托管广告管理软件,但它太慢了。 目标:我需要能够展示一个广告,获得 10 次点击,然后停用该广告,并且每天都这样做。 问题:当我将 openX 设置为每天 10 次点击
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我正在尝试实现一个简单的类,该类允许用户裁剪用于其个人资料图片的图像。这是一个 Java Web 应用程序。 我做了一些搜索,发现 java.awt 有一个 BufferedImage 类,这看起来(
只是一个关于 JQuery 的简单问题,我一直在使用phonegap 并使用 JQuery 制作了一些应用程序。其中一个运行速度非常慢,所以我一直在努力尽可能地精简它。 我一直在考虑的一个更改是用更小
我是一名优秀的程序员,十分优秀!