首页 文章
  • 3 votes
     answers
     views

    制作适用于GNU和SWI的Prolog代码

    我意识到这将有限制,但有没有合理的方法在Prolog代码中放入条件指令,以便它在GNU或SWI中合理地工作?我在考虑至少最简单的情况,其中内置谓词如SWI中的 sumlist 和GNU中的 sum_list 在拼写中彼此不匹配 . 或者SWI有 assert 但GNU没有 . 所以有这样的东西会很好: :- if($SWI). SWI version of stuff :- else. GNU v...
  • 3 votes
     answers
     views

    如何为macOS构建可移植的静态C库

    我想构建一个可移植的静态C库,无论macOS版本如何,它都可以链接到macOS二进制文件中 . C库没有任何依赖关系(即没有stdlib,没有OS特定的调用) . 唯一的依赖是CPU必须是x86_64 . 在提取相关的编译器三元组时,我得到Sierra的 x86_64-apple-darwin16.7.0 ,和High Sierra的 x86_64-apple-darwin17.2.0 . 此...
  • 16 votes
     answers
     views

    64位上的int vs size_t

    将代码从32位移植到64位 . 有很多地方 int len = strlen(pstr); 这些都会产生警告,因为strlen()返回的是size_t,它是64位,而int仍然是32位 . 所以我一直在用它们取而代之 size_t len = strlen(pstr); 但我只是意识到这是不安全的,因为size_t是无符号的,它可以被视为代码签名(我实际上碰到了一个导致问题的情况,谢谢你,单元...
  • 3 votes
     answers
     views

    为什么在创建特定于x86_64的共享对象时“无法使用R_X86_64_32”的CMake解决方案?

    我为我的新玩具编译一些插件时遇到了这个错误(在Linux上的gcc / g上): 重命名R_X86_64_32在制作共享对象时不能使用;用-fPIC重新编译 我基本上理解why PIC is needed但是,在CMake系统中,solution seems to be this: IF (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") ...
  • 44 votes
     answers
     views

    适用于Python脚本的shebang

    我通常在我的Python脚本中使用以下shebang声明: #!/usr/bin/python 最近,我遇到了这个shebang声明: #!/usr/bin/env python 在脚本文档中,注意到使用此表单“更具可移植性” . 这个声明是什么意思?为什么路径中间有空间?它实际上是否有助于稳定性?
  • 3 votes
     answers
     views

    便携式makefile创建目录

    我希望通过制作一个相当通用的makefile来为自己节省一些精力,这个makefile将为我提供相对简单的C项目,只需对makefile进行最少的修改 . 到目前为止,我已经得到它所以它将使用同一目录中的所有 .cpp 文件和指定的子目录,将所有这些放在 obj subdir中的匹配结构中,并将生成的文件放在另一个名为 bin 的子目录中 . 几乎是我想要的 . 但是,尝试获取它以便创建所需的o...
  • 3 votes
     answers
     views

    C99标准是否保证了unsigned int的二进制表示?

    C99(ISO / IEC 9899:1999) 6.2.6.2/1整数类型任何填充位的值都是未指定的.45)符号位为零的有符号整数类型的有效(非陷阱)对象表示是相应无符号类型的有效对象表示,并代表相同的 Value . 对于任何整数类型,所有位为零的对象表示应该是该类型中零值的表示 . 在C99标准中,保证所有位为零的整数类型表示相应类型中的值 0 . 但是,这是否保证了基础二进制值是我...
  • 0 votes
     answers
     views

    使cgi脚本“可移植”

    我有一个使用perl cgi脚本的小项目 . 此刻我使用Apache来运行这些脚本 . 我有一个index.html文件,重定向到一个cgi文件 .现在我想创建我的项目'portable',这意味着我希望能够将项目移动到另一个位置而无需配置apache(因此不更改配置中的cgi-bin目录) . 最终产品将是一个可以打开的脚本(或html文件),以便弹出一个浏览器,就像它将像使用Apache一样运...
  • 11 votes
     answers
     views

    Android wifi热点客户端连接事件

    我在我的Android应用程序中以编程方式连接不同的设备与wifi热点AP,如何检测连接和断开连接的客户端以及我以编程方式打开的wifi热点AP? Android API中是否有任何回调事件可以提供有关各个设备的连接或断开连接事件的信息?提前致谢 .
  • -1 votes
     answers
     views

    Android:获取手机的SSID和密码,这是一个便携式wifi热点

    我需要找到一种方法来获取我的Android设备共享的网络的SSID(我的设备是一个便携式wifi热点) . 不是我连接的网络的SSID . 谢谢
  • 554 votes
     answers
     views

    套接字选项SO_REUSEADDR和SO_REUSEPORT,它们有何不同?它们在所有主要操作系统中的含义是否相同?

    套接字选项 SO_REUSEADDR 和 SO_REUSEPORT 的 man pages 和程序员文档对于不同的操作系统是不同的,并且通常非常混乱 . 某些操作系统甚至没有选项 SO_REUSEPORT . WEB中充满了关于此主题的矛盾信息,并且通常您可以找到仅对特定操作系统的一个套接字实现的信息,这些信息甚至可能在文本中没有明确提及 . 那么 SO_REUSEADDR 与 SO_REUS...
  • 0 votes
     answers
     views

    切换到Linux环境,现在fscanf不起作用

    我有一个在Windows中使用Visual Studio和CodeBlocks编译的程序,但是当我使用QT Creator在Kubuntu中编译它时,fscanf函数的工作方式不同 . 我有一个包含其他文件名称的文件,每个文件由空格和换行符分隔 . 在工作环境中使用带有"%s"的fscanf将文件名读入 char entity[21] ,在此测试用例中,它保存"ent...
  • 2 votes
     answers
     views

    在IPv6套接字上使用`sendto()`发送到IPv4地址

    我有一个C应用程序,它使用相同的IPv6 UDP套接字发送到IPv6或IPv4目的地 . sockfd = socket(PF_INET6, SOCK_DGRAM, 0); dest_addr.sin6_family = AF_INET; dest_addr.sin6_port = htons(dest_port); inet_pton ("192.168.1.33", &a...
  • 2 votes
     answers
     views

    在** portable C **中,如何启动连接命令's stdin to the launcher' s stdout的命令?

    在C程序(p1)中,如何启动动态构造的命令(及其参数),从p1的标准输出读取其标准输入? 注意: 除了这个stdout - > stdin管道之外的方法也可以 provided 在Windows和Linux上是 PORTABLE . 我不能在这里使用C,Java,Perl,Ruby,Python等 . 此外,它的Windows版本是否具有MinGW依赖性? REOPENED ...

热门问题