Linux c 面试(linux面试题面试足够了)
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显示指令执行过程。
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=;