草庐IT

linux - 如何克服 Linux 上的 ksh 与安装在 AIX/Solaris/HPUX 上的 ksh 之间的不兼容性?

我参与了将包含数百个ksh脚本的系统从AIX、Solaris和HPUX移植到Linux的过程。我发现ksh在两个系统上的行为方式存在以下差异:#!/bin/kshflag=falseecho"a\nb"|whilereadxdoflag=truedoneecho"flag=${flag}"exit0在AIX、Solaris和HPUX上,输出为“flag=true”,在Linux上,输出为“flag=false”。我的问题是:有没有我可以设置的环境变量来让Linux的ksh表现得像其他操作系统的?否则:在Linux的ksh上是否有一个选项来获得所需的行为?否则:是否有适用于具有所需行为的

linux - 如何克服 Linux 上的 ksh 与安装在 AIX/Solaris/HPUX 上的 ksh 之间的不兼容性?

我参与了将包含数百个ksh脚本的系统从AIX、Solaris和HPUX移植到Linux的过程。我发现ksh在两个系统上的行为方式存在以下差异:#!/bin/kshflag=falseecho"a\nb"|whilereadxdoflag=truedoneecho"flag=${flag}"exit0在AIX、Solaris和HPUX上,输出为“flag=true”,在Linux上,输出为“flag=false”。我的问题是:有没有我可以设置的环境变量来让Linux的ksh表现得像其他操作系统的?否则:在Linux的ksh上是否有一个选项来获得所需的行为?否则:是否有适用于具有所需行为的

linux - 在 HPUX 上连接失败后空闲的 tcp 文件描述符

我有一个客户端tcp套接字(在C++中),它有一个循环,它会在一定的时间间隔内重试打开套接字并连接到服务器,直到成功为止。程序中的一个错误导致连接失败后未在文件描述符上调用close,并且在调用socket时再次使用相同的(打开的)描述符并在重试重新连接时在循环的下一次迭代中连接connect。在Linux机器上,这不会导致任何问题,而在HPUX上,它最终会导致错误24-'打开的文件太多''-lsof将这些显示为TCP*:*(IDLE)。Linux和HPUX之间有什么区别? 最佳答案 我相信它来自HPUX向内核添加套接字的起源。如果

c - 简单的 C 代码在 HPUX 上运行良好,但在 Linux 上会出现段错误。为什么?

我已经很长时间没有做过任何严肃的C语言了,希望能有一个快速的解释。以下代码在HP/UX上编译和运行良好。它在Ubuntu中的GCC4.3.2上编译时没有任何警告(即使使用gcc-Wall),但在Linux上运行时会出现段错误。谁能解释一下为什么?#includeintmain(){char*people[]={"Abigail","Bob"};printf("First:'%s'\n",people[0]);printf("Second:'%s'\n",people[1]);/*thissegfaultsonLinuxbutworksOKonHP/UX*/people[1][0]='R