精华内容
下载资源
问答
  • 以下程序的输出结果是:

    千次阅读 2018-11-21 23:31:50
    以下程序的输出结果是: #include “stdio.h” main() {char *s,*s1=“here is”,*s2=“key”; s=s1; while (*s1!=’\0’) s1++; while (*s1++!=*s2++) s2=s; while (*s2!=’\0’) s2++; printf ("%d-%d=%d\n&...

    以下程序的输出结果是:
    #include “stdio.h”
    main()
    {char *s,*s1=“here is”,*s2=“key”;
    s=s1;
    while (*s1!=’\0’) s1++;
    while (*s1++!=*s2++) s2=s;
    while (*s2!=’\0’) s2++;
    printf ("%d-%d=%d\n",s2,s,s2-s);
    }
    之前一直不理解这个的结果是什么意思。。
    在这里插入图片描述

    #include "stdio.h"
    main()
    {char *s,*s1="here is",*s2="key"; 
    s=s1; //从这里开始,print的s=s1=19748668,即字符串存储起始位置
    while (*s1!='\0')	s1++;//s1向后走,直到字符串的末尾\0,此时printf的s1=19748675
    while (*s1++!=*s2++)	s2=s;
    //这行功能:比较s1与s2,s1的“h”(位置为s+1=19748669)与s2的“k”不同,则s2=s
    //这行执行后:s1=19748922,s2=19748669
    while (*s2!='\0')	s2++; 
    //这行让s2查找至末尾\0: s2=19748675(*s2="here is")
    printf ("s=%d\n",s);
    printf ("s1=%d\n",s1);
    printf ("s2=%d\n",s2);
    printf ("%d-%d=%d\n",s2,s,s2-s);//s2-s即“here is”的长度为7
    }
    

    每次执行程序,存储位置都不一定相同,故s,s1,s2的值每次都会有所不同,但是存储的相对位置是不会改变的,s2-s即“here is”的长度,为7。

    展开全文
  • void ss (char *s,char t) { while (*s) { if(*s==t) *s=t-‘a’+’A’; s++; } } void main() { char str1[100]=“abcddfefdbd”,c=‘d’; ss (str1,c); printf ("%s\n",str1); } ABCDDEFEDBD ...Abcd...

    void ss (char *s,char t)
    {
    while (*s)
    {
    if(*s==t) *s=t-‘a’+’A’;
    s++;
    }
    }
    void main()
    {
    char str1[100]=“abcddfefdbd”,c=‘d’;
    ss (str1,c); printf ("%s\n",str1);
    }

    ABCDDEFEDBD
    abcDDfefDbD
    abcAAfefAbA
    Abcddfefdbd

    解析:
    函数ss的功能就是将字符串s中的所有字符为t的字符替换为大写字符。对
    于主函数中的函数ss的调用,就是将字符串str1中的小些字符’d’替换成大写字符’D’。所以
    正确答案是B。

    展开全文
  • Linux C 程序执行 shell 命令并获取返回结果的方法

    万次阅读 多人点赞 2017-11-29 21:08:43
    Linux提供了很多的实用工具和脚本,在程序中调用工具和脚本,无疑可以简化程序,从而降低代码的缺陷数目。Linux shell 脚本也是一个强大的工具,我们可以根据需要编制脚本,然后在程序中调用自定义脚本。  《Unix ...

    据说有统计数据表明,代码的缺陷率是一定的,与所使用的语言无关。Linux提供了很多的实用工具和脚本,在程序中调用工具和脚本,无疑可以简化程序,从而降低代码的缺陷数目。Linux shell 脚本也是一个强大的工具,我们可以根据需要编制脚本,然后在程序中调用自定义脚本。

    《Unix 编程艺术》中有一句话“一行 Shell 脚本胜过万行 C”。那么在 Linux 编程中,C 程序如何调用 shell 命令,又如何获取该命令的返回结果呢?下面我们一起来看一下吧。

    1. 调用 shell 命令

    一般来说,在 Linux 系统中使用 C 程序调用 shell 命令有以下三种常见的方法:system()、popen()、exec 系列函数。

    • 使用 system() 不需要用户再创建进程,因为它已经封装好了,直接加入 shell 命令即可;
    • 使用 popen() 执行 shell 命令,其开销比 system() 小;
    • exec 需要用户 fork/vfork 进程,然后 exec 所需的 shell 命令。

    1.1 system()

    函数原型

    int system(const char *command);  
    

    函数说明

    system() 会调用 fork() 产生子进程,由子进程来调用 /bin/sh -c string 来执行参数 string 字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用 system() 期间 SIGCHLD 信号会被暂时搁置,SIGINT 和 SIGQUIT 信号则会被忽略。

    返回值

    如果 system()在 调用 /bin/sh 时失败则返回 127,其他失败原因返回 -1。若参数 string 为空指针(NULL),则返回非零值。如果 system() 调用成功则最后会返回执行 shell 命令后的返回值,但是此返回值也有可能为 system() 调用 /bin/sh 失败所返回的 127,因此最好能再检查 errno 来确认执行成功。

    附加说明

    在编写具有 SUID/SGID 权限的程序时请勿使用 system(),因为 system() 会继承环境变量,通过环境变量可能会造成系统安全的问题。

    示例

    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
    	system(“ls -al /etc/passwd /etc/shadow”);
    	return 0;
    }
    

    1.2 popen()

    函数原型

    FILE *popen(const char *command, const char *type);  
    
    int pclose(FILE *stream);  
    

    函数说明

    popen() 会调用 fork() 产生子进程,然后从子进程中调用 /bin/sh -c 来执行参数 command 的指令。参数 type 可使用“r”代表读取,“w”代表写入。依照此 type 值,popen() 会建立管道连到子进程的标准输出设备或标准输入设备,然后返回一个文件指针。随后进程便可利用此文件指针来读取子进程的输出设备或是写入到子进程的标准输入设备中。此外,除了 fclose() 以外,其余所有使用文件指针(FILE *)操作的函数也都可以使用。

    返回值

    若成功则返回文件指针,否则返回 NULL,错误原因存于 errno中。

    注意事项

    在编写具 SUID/SGID 权限的程序时请尽量避免使用 popen(),因为 popen() 会继承环境变量,通过环境变量可能会造成系统安全的问题。

    示例

    #include <stdio.h> 
    
    int main(int argc, char *argv[])
    { 
    	FILE *fp; 
    	char buffer[80]; 
    	
    	fp=popen("cat /etc/passwd", "r"); 
    	fgets(buffer,sizeof(buffer),fp); 
    	printf("%s",buffer); 
    	
    	return 0;
    }
    

    1.3 exec 函数簇

    函数原型

    int execl(const char *path, const char *arg, ...); 
    int execlp(const char *file, const char *arg, ...);    
    int execle(const char *path, const char *arg, ..., char *const envp[]);    
    int execv(const char *path, char *const argv[]);    
    int execvp(const char *file, char *const argv[]);    
    int execve(const char *path, char *const argv[], char *const envp[];  
    

    示例

    使用 vfork() 新建子进程,然后调用 exec 函数族。

    #include <unistd.h>
    #include <stdio.h>
    
    int main(int argc, char *argv[])
    {
        char *args[] = {"ls", "-al", "/etc/passwd"};
    
        if(vfork() == 0)
        {
            execv("/bin/ls", args);
        }
        else
        {        
            printf("This is the parent process\n");
        }
        return 0;
    }
    

    2. 获取返回结果

    上面我们介绍了几种在 C 程序中调用 shell 命令的方法,其中我们发现一个问题——虽然我们可以知道该 shell 命令是否被执行了,但有时候却无法获取其返回的信息。 那么,这时候你就可以考虑下面这些方法了。

    2.1 使用临时文件

    首先最容易想到的方法应该是,将 shell 命令输出重定向到一个临时文件,在我们的应用程序中读取这个临时文件,从而获得外部命令执行结果。

    代码如下所示:

    #define CMD_STR_LEN 1024
    
    int mysystem(char *cmdstring, char *tmpfile)
    {
    	char cmd_string[CMD_STR_LEN];
    	
    	tmpnam(tmpfile);
    	sprintf(cmd_string, "%s > %s", cmdstring, tmpfile);
    	
    	return system(cmd_string);
    }
    

    这种使用使用了临时文件作为应用程序和外部命令之间的联系桥梁,在应用程序中需要读取文件,然后再删除该临时文件,比较繁琐,优点是实现简单,容易理解。

    2.2 使用匿名管道

    在《UNIX 环境高级编程》(APUE)一书中给出了一种通过匿名管道方式将程序结果输出到分页程序的例子,因此想到,我们也可以通过管道来将外部命令的结果同应用程序连接起来。方法就是 fork 一个子进程,并创建一个匿名管道,在子进程中执行 shell 命令,并将其标准输出 dup 到匿名管道的输入端,父进程从管道中读取,即可获得 shell 命令的输出。

    代码如下所示:

    /**
     * 增强的 system 函数,能够返回 system 调用的输出
     *
     * @param[in ] cmdstring 调用外部程序或脚本的命令串
     * @param[out] buf 返回外部命令的结果的缓冲区
     * @param[in ] len 缓冲区 buf 的长度
     *
     * @return 0: 成功; -1: 失败 
     */
     
    int mysystem(char *cmdstring, char *buf, int len)
    {
    	int   fd[2];
    	pid_t pid;
    	int   n, count; 
    
    	memset(buf, 0, len);
    	if (pipe(fd) < 0) 
    	{
    		return -1;
    	}
    		
    	if ((pid = fork()) < 0) 
    	{
    		 return -1;
    	}
    	else if (pid > 0)     /* parent process */
    	{
    		close(fd[1]);     /* close write end */
    		count = 0;
    		
    		while ((n = read(fd[0], buf + count, len)) > 0 && count > len)
    		{
    			count += n;
    		}
    		close(fd[0]);
    		if (waitpid(pid, NULL, 0) > 0)
    		{
    			return -1;
    		}
    	}
    	else                  /* child process */
    	{
    		close(fd[0]);     /* close read end */
    		if (fd[1] != STDOUT_FILENO)
    		{
    			if (dup2(fd[1], STDOUT_FILENO) != STDOUT_FILENO)
    			{
    				return -1;
    			}
    			close(fd[1]);
    		} 
    		if (execl("/bin/sh", "sh", "-c", cmdstring, (char*)0) == -1)
    		{
    			return -1;
    		}
    	} 
    	return 0;
    }
    

    2.3 使用 popen()

    在执行 shell 命令的示例中,我们用到了 popen() 函数,细心的你可能已经发现了,使用 popen() 还可以获取命令的返回结果。

    该函数的作用是创建一个管道,fork 一个进程,然后执行 shell,而 shell 的输出可以采用读取文件的方式获得。采用这种方法,既避免了创建临时文件,又不受输出字符数的限制,推荐使用。

    popen() 使用 FIFO 管道执行外部程序。它通过 type 是 r 还是 w 确定 command 的输入/输出方向,r 和 w 是相对 command 的管道而言的。r 表示 command 从管道中读入,w 表示 command 通过管道输出到它的 stdout,popen() 返回 FIFO 管道的文件流指针。pclose() 则用于使用结束后关闭这个指针。

    示例代码如下所示:

    #include<stdio.h>    
    #include<string.h>    
    
    int main(int argc,char*argv[])
    {    
        FILE *fstream = NULL;      
        char buff[1024];    
        memset(buff, 0, sizeof(buff));   
         
        if(NULL == (fstream = popen("ifconfig","r")))      
        {     
            fprintf(stderr,"execute command failed: %s",strerror(errno));      
            return -1;      
        }   
          
        while(NULL != fgets(buff, sizeof(buff), fstream)) 
        {  
                printf("%s",buff);    
        }  
        pclose(fstream);    
        
        return 0;     
    }   
    
    
    展开全文
  • Linux下C程序执行shell命令并获取返回结果的方法

    万次阅读 多人点赞 2018-08-29 23:56:00
    Linux下的C编程有以下几种方法可以执行shell命令 system()函数 exec函数簇 popen()函数 如果还需要获取返回结果,有两种较简单方便的方法 popen()函数 匿名管道 1.system()函数 所需头文件:#include&lt;...

    Linux下的C编程有以下几种方法可以执行shell命令

    1. system()函数
    2. exec函数簇
    3. popen()函数

    如果还需要获取返回结果,有两种较简单方便的方法

    1. popen()函数
    2. 匿名管道

    1.system()函数

    所需头文件:#include<stdlib.h>

    函数原型:int system(const char *cmdstring);

                      cmdstring是一个字符指针,就是一个包含需要运行的shell命令的字符串

    通过查阅《UNIX环境高级编程》,以下是system函数的一种实现方式

    int system(const char *cmdstring)
    {
    	pid_t pid;
    	int status;
    	if (cmdstring == NULL)
    	{
    		return (1);
    	}
    	if ((pid = fork()) < 0)
    	{
    		status = -1;
    	}
    	else if (pid == 0)
    	{
    		execl("/bin/sh", "sh", "-c", cmdstring, (char *)0);
    		_exit(127);
    	}
    	else
    	{
    		while (waitpid(pid, &status, 0) < 0)
    		{
    			if (errno != EINTR)
    			{
    				status = -1;
    				break;
    			}
    		}
    	}
    	return(status);
     } 

    返回值:

    • 如果cmdstring字符指针为NULL,返回1
    • 如果fork失败或者waitpid返回除EINTR之外的错,则返回-1
    • 如果exec失败,即不能执行shell(多半是没这个命令),返回值如同shell执行了exit(127)一样,结果为32512
    • 如果fork、exec、waitpid都没有问题,shell也有这个命令,那么返回值是shell的终止状态(即执行shell命令的返回值)

    注:exec失败或者shell命令执行失败,返回值会填入返回的整形状态status的8~15位,0~7位全为0,所以exit(127)的结果为32512是将127换成二进制为1111111,填入status的8~15位,则为111111100000000,换成十进制就是32512

    通过以下对程序的试验,个人得出结论,命令正确执行返回0,不太肯定所有的命令,尝试了mv,cp,touch,ls命令正确返回都为0;exec执行失败,多半是没这个命令,返回32512;如果是其他正整数,代表shell命令是有的,但shell命令执行出问题,例如下图ls一个没有的文件,返回512.

    #include<stdio.h>
    int main()
    {
    	int ret = 0;
    	ret = system(NULL);
    	printf("ret = %d \n",ret);//ret = 1
    	return 0;
    } 
    
    #include<stdio.h>
    int main()
    {
    	int ret = 0;
    	ret = system("exit 55");
    	printf("ret = %d \n",ret);//ret = 14080
    	return 0;
    } 
    
    #include<stdio.h>
    int main()
    {
    	int ret = 0;
    	ret = system("ls dsfgsdfg");//ls一个没有的文件  ret = 512
    	printf("ret = %d \n",ret);
    	return 0;
    } 
    
    #include<stdio.h>
    int main()
    {
    	int ret = 0;
    	ret = system("asdfgdsgs");//输入一个没有的命令 ret = 32512
    	printf("ret = %d \n",ret);
    	return 0;
    } 
    
    #include<stdio.h>
    int main()
    {
    	int ret = 0;
    	ret = system("ls");
    	printf("ret = %d \n",ret);//正常  ret = 0
    	return 0;
    } 

     

    2.exec函数簇

    我就直接照搬我的文章《linux编程进程与线程基本实例》里的exec函数簇介绍了。

    调用exec函数时,该调用ecec的进程执行的程序完全替换为新程序,但并不创建新进程,前后进程的ID并不改变。exec只是用磁盘上的一个新程序替换了当前进程的正文段、数据段、堆段和栈段。

    #include <unistd.h>
    extern char **environ;
    int execl(const char *path, const char *arg, ...);
    int execv(const char *path, char *const argv[]);
    int execvp(const char *file, char *const argv[]);
    int execve(const char *path, char *const argv[], char *const envp[]);
    int execlp(const char *file, const char *arg, ...);
    int execle(const char *path, const char *arg, ..., char * const envp[]);

    最后一个参数为NULL 或者(char *)0

    成功不会返回任何值,调用失败会返回-1   

    const char *path要写绝对路径,const char *file就不用

    例如execlp("ls","ls","-l",NULL);

    execl("/bin/ls","ls","-l",NULL);

    char *arg[] = {"ls", "-a", NULL}

    execv( "/bin/ls",arg);

    execvp( "ls",arg);

     

    3.popen()函数和pclose()函数

    常见操作是创建一个连接到另一个进程(shell的命令行)的管道,然后读其输出或向其输入端发送数据。

    工作原理:popen先执行fork,然后调用exec执行cmdstring,并返回一个标准的I/O文件指针。

    头文件:#include<stdio.h>

    原型:FILE *popen(const char *cmdstring, const char *type)

    cmdstring:包含shell命令字符串

    type:为”r”时,则文件指针连接到cmdstring的标准输出,也就是代表指向执行shell命令返回的消息,也可以认为链接到stdout

               为”w”时,则文件指针连接到cmdstring的标准输入,也可以认为链接到stdin

                int pclose(FILE *fp);

                          fp:为ponen返回的文件指针

    返回值:成功返回cmdstring的终止状态;出错返回-1

    下面是执行通过popen函数执行shell命令ls的代码

    #include<stdio.h>
    int main()
    {
    	FILE *fp = NULL;
    	char data[100] = {'0'};
    	fp = popen("ls", "r");
    	if (fp == NULL)
    	{
    		printf("popen error!\n");
    		return 1;
    	}
    	while (fgets(data, sizeof(data), fp) != NULL)
    	{
    		printf("%s", data);
    	}
    	pclose(fp);
    	return 0;
    }

     

    4.匿名管道pipe

    使用管道来获取执行shell命令返回的信息,一般流程如下

            1.创建管道

            2.使用dup函数复制描述符将shell命令行标准输出绑定到管道的写端

            3.从管道的读端读取数据

    pipe函数

            所需头文件:#include<unistd.h>

            函数原型:int pipe(int fd[2]);

            返回值:成功返回0,出错返回-1

    一个例子:创建进程,创建匿名管道,子进程使用dup2函数将标准输出的描述符复制给管道的写端,父进程从管道的读端读取数据

    #include<stdio.h> 
    #include<unistd.h>
    #include<string.h>
    #include<stdlib.h>
    int main()
    {
    	int fpipe[2] = {0};
    	pid_t fpid;
    	char massage[1000] = {0};
    	memset(massage, 0, 20);
    	if (pipe(fpipe) < 0)
    	{
    		printf("Create pipe error!\n");
    	}
    	fpid = fork();
    	if (fpid == 0)
    	{
    		close(fpipe[0]);
    		dup2(fpipe[1],STDOUT_FILENO);
    		system("ls");
    	}
    	else if (fpid > 0)
    	{
    		wait(NULL);
    		printf("this is father,recieve:");
    		fflush(stdout);
    		close(fpipe[1]);
    		read(fpipe[0], massage, 1000);
    		printf("%s\n",massage);
    	}
    	else
    	{
    		printf("create fork error!\n");
    	}
    	return 0;
    }

    展开全文
  • Java程序执行cmd命令

    万次阅读 2018-11-17 15:29:03
     1.1 思路分析:使用Process的exec()将cmd的执行结果通过java的IO流输出到IDE的控制台即可.  Process的exec()方法.看一下源码,发现有好几个构造方法,传单个cmd的,传cmd数组的等. public Process exec(String ...
  • Java虚拟机-Java程序执行流程

    千次阅读 2018-01-13 00:51:04
    程序执行流程我把它划分为以下几个步骤:编辑源码、编译生成class文件、(加载class文件、运行class字节码文件),其中两个步骤都是在jvm虚拟机上执行的。
  • 场景描述:一个程序如果超过5秒还未执行完成,希望调用别的程序实现该...缺点:如果A程序是一个死循环,FutureTask.get(int,String)停止等待A程序结果,自动执行下面程序,但A程序会一直执行 以下是实现代码: public
  • 51单片机程序执行流程详细分析

    千次阅读 2020-02-26 11:51:40
    忽然想到来探探51单片机的执行流程。这个念头起源于最初见到每个51程序里面的主函数里面最终都挂一个while(1);语句。为何要加一句while死循环让程序停留在main函数中呢。将while(1);语句去掉有什么影响么? 写一个很...
  • 程序是如何被计算机所执行的?

    万次阅读 多人点赞 2016-08-29 09:48:08
    要明白程序是如何被计算机所执行的,首先要明白什么是程序?先看看一下几个问题: 程序的概念? 程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。为实现预期目的而进行操作的一...
  • java分析测试代码程序执行时间与消耗内存

    千次阅读 多人点赞 2019-07-18 10:52:43
    最近刷LeetCode题的时候,突然想用idea分析每个程序执行消耗的时间和内存,但是网上搜了一下好像也没明确说明要怎么办的,看了几篇类似的帖子,自己造了一个java单例类,定义了start和end方法来分析两个方法之间代码...
  • 程序的并发执行

    千次阅读 2018-09-09 21:23:31
    一、程序的顺序执行 ...所以程序顺序执行以下几个特点。 1.1、顺序性 处理机的操作,严格按照顺序执行,前一操作还没执行完毕,后继操作则不能继续执行。 1.2、封闭性 程序是在封闭的环境下运行的...
  • 很快就开发完成 了一个Demo版,然而程序执行的效率不是那么令人满意,通过使用Python中的profile发现,影响程序执行性能的关键语句就那么几条(用 dict保存加载原始数据,这是个循环遍历。) 解决问题 既然找到
  • Linux strace命令---跟踪程序执行

    万次阅读 2015-06-01 17:14:27
    strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统...
  • 在ideaDebug模式下,当程序运行到断点处,点击Stop按钮,程序并未立刻终止,而是会继续执行断点的代码,以下方式可解决该情况: 浏览器访问,断点到second,此时点击停止 浏览器打印了最后结果,控制台打印的...
  • 简单示例: import time print '11' time.sleep(10) print '22' 先打印11,等待10秒,打印22
  • 学习UNP时,学到了在命令加上字符“&”,退出shell,运行的命令可以继续运行。不解原因,并到网上搜索了以下,明白了! 以下是搜索到的片段: & 放在启动参数后面表示设置此进程为后台进程 默认情况下,...
  • 程序并发执行时的特征

    千次阅读 2020-02-13 16:25:28
    间断性。程序在并发执行时,由于他们共享资源等原因导致彼此间形成了相互制约的关系。 失去封闭性。 不可再现性。程序在并发执行时由于不知道哪个程序会被优先执行导致处理结果可能出现不一致。 ...
  • 程序的编译和执行过程

    千次阅读 2018-08-14 11:30:50
    每个目标文件由链接器(linker)捆绑在一起,形成一个单一而完整的可执行程序。 链接器同时也会引入标准C函数库中任何被该程序所用到的函数,而且它可以搜索程序员个人的程序库,将其需要的函数也链接到程序中。 ...
  • c语言实现汉诺塔(程序执行步骤详解)

    万次阅读 多人点赞 2010-05-06 16:14:47
    程序只是实现了文字信息,即用文字描述了圆盘的移动过程,并未真正实现圆盘的移动,该程序难度并不大,要了解递归的原理和方法中参数值的变化。 # include &lt;stdio.h&gt;   void ha...
  • Python程序执行原理

    千次阅读 2016-04-30 21:35:09
    Python程序执行原理 目录Python2016年4月29日   1. 过程概述 Python先把代码(.py文件)编译成字节码,交给字节码虚拟机,然后虚拟机一条一条执行字节码指令,从而完成程序执行。 2. 字节码 字节...
  • 一文教会你hello程序执行过程

    千次阅读 2020-04-13 14:11:16
      初始时,:外壳程序执行它的指令,等待我们输人一个命令。当我们在键盘上输人字符串“./hello”,外壳程序将字符逐一读人寄存器,再把它存放到存储器中,如下所示。(顺序是键盘——寄存器——主存储器) ...
  • shell命令执行结果$?

    千次阅读 2019-09-29 10:42:52
    shell命令执行结果
  • 如何获取多线程执行结果-java

    千次阅读 2021-08-12 16:08:05
    在日常的项目开发中,我们会经常遇到通过多线程执行程序并需要返回执行结果的场景,下面我们就对获取多线程返回结果的几种方式进行一下归纳,并进行简要的分析与总结。 一、Thread.join 在一些简单的应用场景中...
  • 最近在使用eclipse遇到了问题,程序无论怎么运行都是之前修改前的程序结果,如下面所示: package test; public class test { public static void main(String[] args) { // TODO Auto-generated method stub...
  • 因此得知每次内存对象的创建与销毁都必须修改引用计数,从而在大量的对象创建时,需要大量的执行修改引用计数操作(footprint),对于程序执行过程中,额外的性能开销是令人可怕的,由于该算法的特性问题,因此无法...
  • 计算机程序执行过程

    万次阅读 2011-12-16 23:57:37
    计算机程序执行过程 程序就是指令的集合 为使计算机按预定要求工作,首先要编制程序程序是一个特定的指令序列,它告诉计算机要做哪些事,按什么步骤去做。指令是一组二进制信息的代码,用来表示计算机所能...
  • 51单片机程序执行流程(STARTUP.A51) [李园7舍_404]

    万次阅读 热门讨论 2013-06-05 11:21:31
    keil 版本:uVision 4    单片机是没有上操作系统...忽然想到来探探51单片机的执行流程。这个念头起源于最初见到每个51程序里面的主函数里面最终都挂一个while(1);语句。为何要加一句while死循环让程序停留在main函
  • 爬虫程序定时执行和监控示例

    万次阅读 2016-05-06 19:23:20
    我们的爬虫程序执行过程中,可能需要满足以下条件: 1、可以每天定时执行,爬取指定电商等网站内容。 2、可以对分布式爬虫进行监控,当爬虫程序挂掉之后,可以通知管理员。   下面我们来介绍如何实现这两个...
  • Android 运行 Linux 可执行程序

    千次阅读 2018-07-09 16:27:24
    原文地址:https://www.cnblogs.com/zengjfgit/p/4455668.html/**************************************************************************** * Android 运行 Linux 可执行程序 * 声明: * 1. L...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 973,636
精华内容 389,454
关键字:

以下程序执行后的结果是