关闭

linux c使用system调用shell脚本

system的原理其实就是调用fork创建子进程去执行shell命令,然后返回最后一条shell命令的状态值。linux下man system可以看到返回值说明: 1.如果返回值等于-1就是system函数执行失败,准确的说是fork创建子进程失败。 2.shell执行最后一条语句的状态值放在返回值的低8位,使用WEXITSTATUS宏可以获得状态值。 3.使用WIFEXITED宏取返回值判断...
阅读(38) 评论(0)

struct中的数组和指针

好了,一上来就放代码,简单粗暴!这里可以看出来两点: 1.struct的内存对齐是按照成员最大的那一个来的 2.数组在struct中不占大小 重点说第2个,在linux内核代码中屡见不鲜! 这个用法主要用于变长buffer,test1的大小为4,结构体中的data[0]不占用任何空间,甚至是一个指针的空间都不占,data在这儿只是表示一个常量指针,这个特性是编译器来实现的,即在使用test1....
阅读(170) 评论(3)

atoi实现

atoi()函数会扫描参数str字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过isspace()函数来检测),直到遇上数字或正负符号才开始做转换,后续再遇到非数字或字符串结束时(‘\0’)才结束转换,并将前面部分的转换结果返回。#define INT_MAX 0x7fffffff //2147483647 #define INT_MIN 0x80000000 //-214...
阅读(495) 评论(9)

memcmp比较两个struct是否相等

还是深信服的题目,连续两轮技术面试,都反复问到这个问题。虽然说是考察内存对齐的点,但是被我自己聪明反被聪明误了。比如:struct MyStruct { char a; int b; }; MyStruct A, B; memcmp(&A, &B, sizeof(MyStruct));A和B是否可以通过memcmp来判断是否相等。我当时脱口而出,虽然要内存对齐,但是a后面会补三个’\...
阅读(332) 评论(2)

[置顶] 不定参数函数牵扯出来的栈的生长方向和大端小端模式

主题:CPU的架构决定了大端小端模式和栈的生长方向。 前天参加深信服的专场招聘,问到不定参数函数的实现,当时只记得参数入参是从右到左,但是在栈中的存放地址大小当时就想不起来了,现在专门好好整理一下。 首先参数从右到左压栈的方式,这是C语言决定的,比如说Pascal就是从左到右压栈,所以Pascal不支持不定参数函数。比如:printf("%s%d%d\n", s, a, b);格式字符串是确定存...
阅读(236) 评论(0)

linux下strncasecmp的实现

看来strcpy的实现确实是太low了,腾讯的笔试字符串知识点考察就变了。 linux下不区分大小写的字符串比较函数原型: int strncasecmp(const char *s1, const char *s2, register size_t n); 返回值:如果相等返回0     如果s1>s2,返回正整数     如果s1<s2,返回负整数static const unsign...
阅读(234) 评论(2)

#define MAX(a, b, ……)

前天去腾讯的专场招聘会霸面,在会场招聘宣传影片很温馨,一副海纳百川的招聘态度。可惜了就算是腾讯的HR也避免不了不专业,IT类的招聘专员还是最好有计算机专业背景的来筛选简历比较靠谱。也对,毕竟这个HR不专业,所以她的态度也是差得可怜。说正题,笔试题目。 用宏定义MAX(a,b)求两个数最大值:#define MAX(a,b) a>b?a:b用宏定义MAX(a,b,c)求三个数最大值:#define...
阅读(145) 评论(0)

不调用C/C++的字符串库函数,请编写函数strcpy

不调用C++/C的字符串库函数,请编写函数 strcpy...
阅读(1291) 评论(2)

拷贝构造函数可以访问私有数据成员

访问限制标号是针对类而不是针对一个类的不同对象,只要同属一个类就可以不用区分同一个类的不同对象。...
阅读(944) 评论(2)
    个人资料
    • 访问:21905次
    • 积分:667
    • 等级:
    • 排名:千里之外
    • 原创:44篇
    • 转载:0篇
    • 译文:0篇
    • 评论:29条
    联系方式

    公司:深信服科技股份有限公司


    所在地:中国-广东省-深圳市


    QQ交流群:165650716


    文章分类