jjzjj

c++ - Solaris 9 上的 printf + uint64?

我有一些使用sprintf将uint_64转换为字符串的c(++)代码。这需要可移植到linux和Solaris。在Linux上我们使用%ju,但在Solaris上似乎没有任何等效项。我能找到的最接近的是%lu,但这会产生不正确的输出。一些示例代码:#include#include#ifdefSunOStypedefuint64_tu_int64_t;#endifintmain(intargc,char**argv){u_int64_tval=123456789123L;#ifdefSunOSprintf("%lu\n",val);#elseprintf("%ju\n",val);#e

C++ 预处理器删除可变参数宏调用中的空格 (Solaris Studio 12.3)

OracleSolarisStudio12.3的C++预处理器在扩展__VA_ARGS__时完全删除了空格。任何人都可以在他们的系统上确认这种行为吗?这是一个已知的编译器错误吗?这个问题有什么解决方法吗?为了说明,这里有一个简单的测试程序,vaargs.c:#include#definePRINT(...)printf("%s\n",#__VA_ARGS__)intmain(){PRINT(helloworld);return0;}C预处理器按预期工作:$ccvaargs.c-ovaargs&&./vaargshelloworld$cc-Vcc:SunC5.12SunOS_i38620

windows - 在 R 中获取允许的语言环境名称的可靠方法是什么?

我正在尝试找到一种可靠的方法来查找要传递给Sys.setlocale的语言环境代码。?Sys.setlocale帮助页面仅指出允许的值取决于操作系统,并给出了以下示例:Sys.setlocale("LC_TIME","de")#Solaris:detailsareOS-dependentSys.setlocale("LC_TIME","de_DE.utf8")#ModernLinuxetc.Sys.setlocale("LC_TIME","de_DE.UTF-8")#dittoSys.setlocale("LC_TIME","de_DE")#MacOSX,inUTF-8Sys.setl

solaris10 64 位上的 Mongodb - 我在尝试运行 ./mongod 时得到 'Invalid argument'

我已经从mongo站点解压缩并解压缩了solaris安装包-版本1.6.3。当我尝试运行./mongod命令时,我得到以下信息(以root身份运行):$./mongodbash:./mongod:无效参数其余的可执行文件也会发生同样的事情。我已经按照说明创建了数据文件夹,但我可能遗漏了一些基本的东西。我还对整个目录进行了chmod和chown,但没有成功。想法? 最佳答案 这可能是SolarisSPARC大端问题的表现形式吗?我遇到了同样的问题,其他网络搜索让我认为Mongo与SolarisSPARC机器不兼容。如果这对您有影响,请

.net - 在 Solaris 上使用 mono 连接到 MySQL

我正在尝试在Solaris10上通过mono2.8.1使用MySQL数据库。为此,我正在尝试使用官方MySQLConnector/Net.但我收到以下异常:System.Net.Sockets.SocketException:ProtocoloptionnotsupportedatSystem.Net.Sockets.Socket.GetSocketOption(SocketOptionLeveloptionLevel,SocketOptionNameoptionName)[0x00000]in:0atSystem.Net.Sockets.Socket.get_ReceiveTimeo

sockets - 远程关闭后 TCP 套接字的状态是什么?

假设我已经接受()到我的服务器(在Solaris上运行)的连接并且客户端关闭了连接。在我在服务器端close()之前,服务器端套接字的套接字(在netstat类别中)的状态是什么?绑定(bind)了吗? 最佳答案 会是CLOSE_WAIT,看tcp状态图,例如在http://en.wikipedia.org/wiki/File:Tcp_state_diagram_new.svg 关于sockets-远程关闭后TCP套接字的状态是什么?,我们在StackOverflow上找到一个类似的问题

sockets - 套接字未阻塞写入操作 : OpenSolaris

我有一个单元测试来检查阻塞和非阻塞套接字的行为——服务器写了一个很长的响应,在某些时候它不应该再写了,它写入block。基本上是一边写,另一边不读。在Solaris下,有时我会收到错误“空间不足”(写入75MB后),而不是在写入时阻塞:重现问题的程序:#include#include#include#include#include#include#include#include#include#include#include#include#includecharconst*address="127.0.0.1";#definecheck(x)do{if((x)0){intfd=-1;

sockets - Solaris - 我的进程监听所有接口(interface),但其他进程监听本地主机 :6011

我的服务器程序被设计为监听所有接口(interface),它也在监听工作。一种奇怪的行为正在发生。这意味着端口与sshd进程冲突。因为我需要让我的应用程序和sshd监听相同的端口范围。(例如:6000-6100)MyProg代码:MyPort=6011;#ifTARGET_HAS_IPV6_SUPPORT/*IPv6socket*/{structaddrinfo*ai=NULL;r=ipw_getaddrinfo("::",NULL,AF_INET6,SOCK_STREAM,IPPROTO_TCP,AI_PASSIVE,&ai);if(r==0){Create_listen_socke

windows - 更改 solaris 网络超时

我需要在Windows上尽可能快地超时(连接失败)。但在solaris上它更长,我怎样才能缩短它?(我试图故意连接到一台不存在的机器来模拟一台机器停机)。当我在windows上执行此操作时-->超时-->好D:>telnet192.168.23.21222ConnectingTo192.168.23.21...Couldnotopenconnectiontothehost,onport23:ConnectfailedD:>在windows上(目标ip不存在)然后在大约15秒后命令终止。然而,当我从solaris-->非常长的超时-->不适合我的遗留代码机器执行此操作时,如下所示:myu

Solaris 上的网络帮助

我的Solaris机器上有两个网络接口(interface),ifconfig-a的输出如下所示:lo0:flags=1000849mtu8232index1inet127.0.0.1netmaskff000000bge0:flags=1000843mtu1500index2inet10.17.56.150netmaskffffff00broadcast10.17.56.255ether0:14:4f:7e:4a:68bge1:flags=1000843mtu1500index3inet10.0.226.166netmaskffffff00broadcast10.255.255.255