linux c 面试?linux面试常问命令

这篇文章给大家聊聊关于linux c 面试,以及linux面试常问命令对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

C语言6个有趣的面试题

C语言6个有趣的面试题

1、gets()函数

问:请找出下面代码里的问题。

答:上面代码里的问题在于函数gets()的使用,这个函数从stdin接收一个字符串而不检查它所复制的缓存的容积,这可能会导致缓存溢出。这里推荐使用标准函数fgets()代替。

2、main()的返回类型

问:下面的代码能编译通过吗?如果能,它有什么潜在的问题吗?

答:因为main()方法的返回类型,这段代码的错误在大多数编译器里会被当作警告。main()的返回类型应该是“int”而不是“void”。因为“int”返回类型会让程序返回状态值。这点非常重要,特别当程序是作为依赖于程序成功运行的脚本的一部分运行时。

3、内存泄露

问:下面的代码会导致内存泄漏吗?

答:尽管上面的代码并没有释放分配给“ptr”的内存,但并不会在程序退出后导致内存泄漏。在程序结束后,所有这个程序分配的内存都会自动被处理掉。但如果上面的代码处于一个“while循环”中,那将会导致严重的内存泄漏问题!

4、使用_exit退出

问:在下面的代码中,atexit()并没有被调用,为什么?

答:这是因为_exit()函数的使用,该函数并没有调用atexit()等函数清理。如果使用atexit()就应当使用exit()或者“return”与之相配合。

5、*和++操作

问:下面的操作会输出什么?为什么?

答:输出结果应该是这样:[L] [i]。因为“++”和“”的优先权一样,所以“ptr++”相当于“(ptr++)”。即应该先执行ptr++,然后才是ptr,所以操作结果是“L”。第二个结果是“i”。

6、问:修改代码片段(或者只读代码)

问:下面的代码段有错,你能指出来吗?

答:这是因为,通过*ptr=“T’,会改变内存中代码段(只读代码)“Linux”的第一个字母。这个操作是无效的,因此会造成seg-fault或者崩溃。

嵌入式Linux中关于c面试题

2.某32位系统下, C++程序,请计算sizeof的值(5分).char str[]=“ ”char*p= str;int n= 10;请计算sizeof(str)=?(1)sizeof( p)=?(2)sizeof( n)=?(3)void Foo( char str[100]){请计算sizeof( str)=?(4)}void*p= malloc( 100);请计算sizeof( p)=?(5)2>Void GetMemory(char**p, int num){*p=(char*)malloc(num);}void Test(void){char*str= NULL;GetMemory(&str, 100);strcpy(str,"hello");printf(str);}请问运行Test函数会有什么样的结果?3>int i=10, j=10, k=3; k*=i+j; k最后的值是4>以下是求一个数的平方的程序,请找出错误:#define SQUARE(a)((a)*(a))int a=5;int b;b=SQUARE(a++);4>C/C++编译器中虚表是如何完成的?5>.对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?6>unsigned char*p1; unsigned long*p2; p1=(unsigned char*)0x801000; p2=(unsigned long*)0x810000;请问p1+5=; p2+5=;

linux常用命令面试题有哪些

linux常用命令有:

1、cp命令,作用复制,参数如下:

-a:将文件的特性一起复制。

-p:连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份。

-i:若目标文件已经存在时,在覆盖时会先询问操作的进行。

-r:递归持续复制,用于目录的复制行为。

-u:目标文件与源文件有差异时才会复制。

2、rm命令作用为删除,参数:

-f:就是force的意思,忽略不存在的文件,不会出现警告消息。

-i:互动模式,在删除前会询问用户是否操作。

-r:递归删除,最常用于目录删除,它是一个非常危险的参数。

3、mv命令作用为移动文件:

-f:force强制的意思,如果目标文件已经存在,不会询问而直接覆盖。

-i:若目标文件已经存在,就会询问是否覆盖。

-u:若目标文件已经存在,且比目标文件新,才会更新。

4、pwd命令,作用为查看”当前工作目录“的完整路径。

pwd-P#显示出实际路径,而非使用连接(link)路径;pwd显示的是连接路径。

5、rmdir命令删除目录:

rmdir [选项]...目录...

-p:递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。

-v:verbose显示指令执行过程。

阅读剩余
THE END