精华内容
下载资源
问答
  • 用c写的cgi程序,如果编译时不加载lib文件,一切正常,但是只要加载了lib文件,编译出来的可执行程序在服务器(UNIX)上运行结果一切正常,但是无法在网页中调用,会在网页中出现如下错误信息: Internal Server...
    用c写的cgi程序,如果编译时不加载lib文件,一切正常,但是只要加载了lib文件,编译出来的可执行程序在服务器(UNIX)上运行结果一切正常,但是无法在网页中调用,会在网页中出现如下错误信息:
    
    Internal Server Error
    The server encountered an internal error or misconfiguration and was unable to complete your request.
    Please contact the server administrator, ems@szweb and inform them of the time the error occurred, and anything you might have done that may have caused the error.

    More information about this error may be available in the server error log.
    服务器的错误信息是Premature end of script headers。
        请高手指点,急呀!!

    回复讨论(解决方案)

    坐个沙发
    友情UP
    "但是只要加载了lib文件,编译出来的可执行程序在服务器(UNIX)上运行结果一切正常“
    什么叫正常呢?有调试过确认如果参数正确传递后能显示正确的内容吗?再试试,应该没问题的。
    你的库的位置没有指定好
    可能dll不在path里
    显示是CGI程序执行时无法定位动态库的位置,而后终止程序运行所致. 
    在Shell环境中, 动态库可以在环境变量中指定并得到定位, 而作为CGI程序执行时, WEB 服务器传递给CGI文件时, 只传递给CGI程序CGI-1.1规定定的环境变量, 全局的环境变量并不没有传递给CGI执行程序. 所以必然会出错.

    解决方法, 你可以把你自己做的库放在系统库所在的目录,或直接用静态库链接到你的CGI程序中.


    ============================
    另外, 用 C 写CGI程序就不防试试用 CSP (C Language Service Page), 就是直接将 C 语言嵌入到HTML中, 最后再将CSP源文件翻译成 C 文件. 这样会大大提供 C 开发CGI的工作效率. 同时, CSP的集成开发环境 eybuild 还提供了很多方便用C开发的cgi libs, 可以运行在Windows/各种Unix下的所有支持 CGI-1.1标准的WEB 服务器. 因为eybuild的跨平台性等, 目前是CGI程序开发最佳选择.


    中文手册 下载: http://www.eybuild.com/develop/doc/manual/eyBuild_manual_ch.pdf
    eybuild 开发环境免费下载: http://www.eybuild.com/develop/download/eyBuild-00-07-00.tar.gz
    更多信息: http://www.eybuild.com

    上面还有很多有关 CGI开发相关的文档/源程序可供免费下载.
    你是否使用了动态库,另外检查给 CGI 使用的用户,这个用户的环境可能和你登陆 UNIX 的用户的环境有不同,如路径和权限等。另外低级一点的问题,你的程序是否输出了 content-type: text/html\n\n,虽然低级,但常常会被忽略。
    展开全文
  • 我写了如下代码,写完以后却只能执行一次,无法实现循环。问问大佬我这个do while循环判断哪里错了?一直找不到原因 ``` #include int main() { char code; int number,price=0; int price1=18;//菜品一:...
  • 这种情况的出现是因为用户在输入结束时都会敲一下回车键才能让程序继续执行, 但是,每次printf会从用户输入缓冲区取出用户输入的内容,这样就会在缓冲区留下回车键, 下一次输入如果是获取一个字符,就会将缓冲区...

    运行到第二次开始游戏时,发现GameJudge函数中的scanf无法从键盘中输入数据
    这种情况的出现是因为用户在输入结束时都会敲一下回车键才能让程序继续执行,
    但是,每次printf会从用户输入缓冲区取出用户输入的内容,这样就会在缓冲区留下回车键,
    下一次输入如果是获取一个字符,就会将缓冲区剩余的回车键取出。

    #include<stdio.h>
    #include<ctype.h>
    #include <stdlib.h>
    #include <time.h>
    #include<windows.h>
    
    //定义全局变量
    int InputNumber = 0;//输入的数字
    char Game;//输入的指令
    int s = 0;//游戏循环的控制
    
    //输入是否开始游戏的指令
    int GameJudge(void)
    {
        printf("输入Y开始游戏\n输入N退出游戏\n");//不用区分大小写
        printf("请输入指令:");
        setbuf(stdin, NULL);//使stdin输入流由默认缓冲区转为无缓冲区
        scanf("%c",&Game);//
        //fflush(stdin);//清除缓冲区 这个貌似没有用,用setbut代替了
        Game  = toupper(Game);
        switch(Game)
        {
            case 'Y' : s = 1;break;
            case 'N' : s = 0;break;
            default : s = 0;break;
        }
        return s;
    }
    
    //判断输入的数字是否符合要求
    int JudgeNumber( int x)
    {
        int n;
        if((x>=0)&&(x<=9)){n = 1;}
        else{n = 0;}
        return n;
    }
    
    //产生随机数,
    int RandomNumber(void)
    {
        int number;
        srand((unsigned) time(NULL)); //用时间做种,每次产生随机数不一样
        number = rand() % 10; //产生0-100的随机数
        return number;
    }
    
    //输入数字,并判断是否符合要求
    int Input(void)
    {
        do
            {
                printf("请输入你的答案:");
                scanf("%d",&InputNumber);
            }
            while(!JudgeNumber(InputNumber));
            return InputNumber;
    }
    
    //游戏的主体
    int main()
    {
        int i = 0;
        int number;//定义随机数
        int Score = 1;//得分计算
        int  j = 1;
    
        number = RandomNumber();
        s = GameJudge();
    
        while(s)//游戏的循环体
        {
            InputNumber = Input();
            do
            {
                if(InputNumber == number)
                {
                    j = 0;
                }
                else
                {
                    printf("你猜错了!\n请重新输入\n");
                    Score  ++;
                    InputNumber = Input();
                }
            }
            while(j);
            switch(Score)
            {
                case 1 : printf("你真是我肚子里的蛔虫!!!\n"); break;
                case 2 : printf("你还真是有点二呀!!!\n" );  break;
                case 3 : printf("哼,不理你了!!!\n" );    break;
                default : printf("你就是个大笨蛋!!!\n" );  break;
            }
            Score = 1;//一轮游戏结束,初始化Score
            system("cls");//清屏
            s = GameJudge();
        }
        system("pause");
    
    }
    
    

    转载于:https://www.cnblogs.com/sakurasky/p/8157293.html

    展开全文
  • C语言程序是编译后的二进制程序,其对目标操作系统依赖性非常强,如:Linux程序无法在Windows系统上直接运行,反之亦然,再如:64位程序无法允许在32位系统。对于C语言程序的内存存储空间的布局,还是需要了解一下的...

    C语言程序是编译后的二进制程序,其对目标操作系统依赖性非常强,如:Linux程序无法在Windows系统上直接运行,反之亦然,再如:64位程序无法允许在32位系统。对于C语言程序的内存存储空间的布局,还是需要了解一下的。

     C语言程序主要分为:正文段,初始化数据段,非初始化数据段,栈,堆等。

    正文段:CPU执行机器指令的部分,该段是只读的。

    初始化数据段:简称数据段,已初始化的变量(全局,静态局部变量)。

    非初始化数据段:简称bss段,这段在二进制可执行文件中不存在,未初始化的(全局,静态变量)。

    栈:局部变量,函数调用所保存的信息(如寄存器值)等都保存在栈中。

    堆:动态分配的内存,如用malloc,realloc等申请的内存,使用后必须手动释放。

    说明:

    局部变量是在运行时创建的,他们并不进入a.out
    数据段保存在目标文件中
    BSS段不保存在目标文件中(除了记录BSS段在运行至所需要的大小)
    文本段最容易受优化措施影响
    a.out文件的大小受调试状态下变异的影响,但段不受影响
    nm -sx a.out命令可查看a.out各段

    转载于:https://blog.51cto.com/14207158/2352337

    展开全文
  • 有些程序无法用其它语言实现,如直接访问硬件,但C却可以。正因为指针可以拥有类似于汇编的寻址方式,所以可以使程序更高效。 2.使用宏函数:函数和宏函数的区别就在于,宏函数占用了大量的空间,而函数占用了时间。...

    1.使用指针:对于指针的理解简单点可以认为类似于汇编中的寻址方式,正是指针的存在使C语言威力无穷。有些程序用其他语言也可以实现,但C能够更有效地实现;有些程序无法用其它语言实现,如直接访问硬件,但C却可以。正因为指针可以拥有类似于汇编的寻址方式,所以可以使程序更高效。
    2.使用宏函数:函数和宏函数的区别就在于,宏函数占用了大量的空间,而函数占用了时间。函数调用是要使用系统的栈来保存数据的,如果编译器里有栈检查选项,一般在函数的头会嵌入一些汇编语句对当前栈进行检查;同时,CPU也要在函数调用时保存和恢复当前的现场,进行压栈和弹栈操作,所以,函数调用需要一些CPU时间。而宏函数不存在这个问题。宏函数仅仅作为预先写好的代码嵌入到当前程序,不会产生函数调用,所以仅仅是占用了空间,而使程序可以高效运行。在频繁调用同一个宏函数的时候,该现象尤其突出。
    3.使用位操作:位操作可以减少除法和取模的运算。在计算机程序中数据的位是可以操作的最小数据单位,理论上可以用"位运算"来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效地提高程序运行的效率。
    4.循环嵌套中将较长循环设为内存循环,较短循环设为外置循环,以减少cpu跨切循环层的次数,提高程序的运行效率。

    展开全文
  • 常量是指程序执行期间不会改变的固定值。这些固定值也称为文字。 常量可以是任何基本数据类型,如整数常量,浮点常量,字符常量或字符串文字,还有枚举常量。 常量被视为常规变量,除了它们的值在定义后无法修改...
  • https://www.easyx.cn/downloads/首先到这个网站下载最新版本的EASY -X,然后点击执行这个文件 点击安装的过程,电脑上如果正在运行杀毒软件的话,要先退出,要不然,360等会将其视为病毒处理! 当点击安装完成后,...
  • C语言程序转换过程

    千次阅读 2018-09-11 14:30:29
    hello,world是我们写的第一个程序 那么计算机是如何实现“hello,world”的输出呢? 什么是编译器,编译器的作用又是什么? #include&amp;amp;amp;lt;stdio.h&...计算机无法直接执行hello.c源文件,
  • 线性表顺序存储结构实现,内含int数组成员的结构体声明为指针类型,调用初始化函数x给其中的数组成员赋值时,编译执行非常慢,且printf无法输出内容。 返回结果: Process returned 255 (0xFF) execution time 2....
  • 概念:程序代码执行的顺序 流程控制的分类 顺序执行 选择执行 1.概念:某些代码可能执行,也可能不执行,有选择的执行某些代码 2.分类 if if最简单的用法 格式:if(表达式) 语句 功能:如果表达式为真,执行...
  • 一、程序设计和C语言

    2018-01-04 21:28:23
    程序设计和C语言 1.1、程序 计算机能识别和执行的指令(每一条指令使计算机执行特定的操作,一个特定的指令完成一定的功能) 1.2、计算机语言 1.2.1、发展 机器语言(机器指令的集合) --> 符号语言(汇编...
  • 满意答案xueer12005推荐于 2018.02....当执行到scanf函数时,程序就暂停等待用户输入,该函数只接受变量的地址,格式为&变量名。是一个阻塞式的函数,等用户输入完毕后,则将值赋值给变量,至此函数调用完毕。敲...
  •  普通文件是指驻留在磁盘或其它外部介质上的一个有序数据集,可以是源文件、目标文件、可执行程序; 也可以是一组待输入处理的原始数据,或者是一组输出的结果。对于源文件、目标文件、 可执行程序可以称作程序文件...
  • 如何看懂C语言程序

    千次阅读 2015-09-23 22:02:58
    第一步:看懂程序的流程(顺序 选择 循环) 第二步:看懂每个语句的功能 第三步:试数(随便找几个数来尝试写分析过程,把自己当计算机一步步执行) ...对一些小算法的程序 ...如果程序无法理解,就把它背会
  • 计算机无法直接将C语言的代码运行,他们并不懂得什么是C语言,实际上,计算机只处理他们的机器语言,所以我们必须为自己找一个翻译,这个翻译可分为2种: 1.编译器 编译器是“文章的译者”,它在我们完成创作后将其...
  • ``` #include int main(int argc,char *argv[])//第一个存放参数的个数,第二个缓冲区存放参数 .../*此程序有问题,问题在于for循环里面无法执行*/ 编译环境Ubuntu16.04 , gcc 5.3.1 ```
  • EusingFreeRegistryCleaner拥有很不错的执行速度,可以快速地寻找你庞大的注册表库中的废物,并且在清除的同时为你进行备份,以免使用者不小心移除了重要的注册表而导致系统无法运作。3、简化了回车清除输入框/候选...
  • 定义学生信息管理系统中的各个子模块的功能并当用户输入需要进行的操作序号(1-5)后程序执行相对应的功能如录入学生信息通过学号查找学生信息统计三门课程平均分统计总分最高分退出等操作;如果采用前面章节所讲的顺序...
  • C语言程序设计》第14章在线测试剩余时间:59:54窗体顶端答题须知:1、本卷满分20分。2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。3、在交卷之前,不要刷新本网页,否则你的答题...
  • 一、C语言程序设计基础 1、程序设计语言发展 (1)机器语言:计算机唯一能够执行的语言(0、1序列)不具备移植性; (2)汇编语言:把机器指令符号化,要转化成机器语言才能执行无法移植; (3)高级语言:执行...
  • C语言程序设计》第14章在线测试剩余时间:59:54窗体顶端答题须知:1、本卷满分20分。2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。3、在交卷之前,不要刷新本网页,否则你的答题...
  • C语言程序设计第07章在线测试 剩余时间 59:54 答题须知1本卷满分20分 2答完题后请一定要单击下面的交卷按钮交卷否则无法记录本试卷的成绩 3在交卷之前不要刷新本网页否则你的答题结果将会被清空 第一题单项选择题每...
  • 编辑:实际上就是将相应的算法转换成符合程序设计语言特定的语法规则的语句,c语言程序的后缀名是.c 编译:这时候的程序无法运行,因为计算机只能识别由0和1组成的代码。这时候需要将文本格式的C源文件转换为可...
  • printf("你没有机会了,程序无法识别你的身份,请按任意键退出程序 ..."); getch(); return 0; } } else break; //假如输入了正确的密码,就执行下面的代码 } } //////////////////...
  • Linux 每日一文 Linux 系统中程序库文件简介 简介 库文件一般就是编译好的二进制文件用于在链接阶段同目标代码一起生成可执 行文件或者运行可执行文件的时候被加载以便调用库文件中的某段代码它 与可执行文件相同之...
  • 实用标准文案 C 语言程序设计第 12 章在线测试 剩余时间 5 9:52 答题须知 1本卷满分 20 分 2 答完题后请一定要单击下面的交卷按钮交卷否则无法记录本试卷的成绩 3 在交卷之前不要刷新本网页否则你的答题结果将会被...
  • 程序发生语法错误,编译器无法生成可执行文件…… 1、%是求余运算,得到a/b的整余数。整型变量a和b可以进行求余运算,而实型变量则不允许进行“求余”运算。 int main() {  float a,b;  printf("%d",a%b); } ...
  • printf("执行语句%s",o); strcpy(com[j-1].num,com[j].num); } for(i=0;i;i++) com[i].no=i+1; printf("编号\t姓名\t得分\n"); for(i=0;i;i++) printf("%s\t%s\t%.2f\n",com[i].num,com[i].name...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 472
精华内容 188
关键字:

c语言无法执行程序

c语言 订阅