LinuxC语言
徐煜清
这个作者很懒,什么都没留下…
展开
-
shell脚本
//获取系统时间NOWTIME=`date "+%Y-%m-%d %H:%M:%S"`//获取进程物理内存VMRSS=`cat /proc/$PID_AVA/status | grep VmRSS | awk '{print $2$3}'`//获取想要文件的大小file_size=`ls -al $FILE | awk '{print $5}'`原创 2021-03-18 10:34:30 · 115 阅读 · 0 评论 -
Makefile语法
Makefile语法ifeq ($(变量), $(findstring $(变量), 枚举变量数值空格间隔))ifeq ($(BOARD), $(findstring $(BOARD), a b c))ifeqelseendif原创 2021-03-18 09:38:49 · 127 阅读 · 0 评论 -
字符指针和字符数组
char* str1 = "abc"; char* str2 = "abc"字符指针并不分配存储区 ,“abc”以常量形式存于静态数据区,而它们自己仅是指向该区首地址的指针,所以str1==str2char str3[] = "abc"; char str4[] = "abc"str1,str2是数组原创 2017-12-02 12:31:09 · 120 阅读 · 0 评论 -
关于聊天室输入密码时不显示打印*的代码问题
不回显输入int mygetch( ) { struct termios oldt,newt; int ch; tcgetattr( STDIN_FILENO, &oldt ); newt = oldt; newt.c_lflag &= ~( ICANON | ECHO ); tcsetattr( STDIN_FILENO,原创 2017-12-14 20:50:25 · 297 阅读 · 0 评论 -
函数递归
每一次函数调用都有一次返回,当程序流执行到某一级递归的结尾处,它会回到前一级递归的一条语句继续执行,例如#include void up(int);int main(void){ up(1); return 0;}void up(int n){ printf("Level %d \n",n); if(n<3) { up(n+1); }原创 2017-12-06 20:21:58 · 141 阅读 · 0 评论 -
链接
一个C变量具有下列链接之一:外部链接,内部链接,或空链接。具有代码块作用域或者函数原型作用域的变量有空链接,意味着它们是由其定义所在的代码块或者函数原型所私有。具有文件作用域的变量可能有内部或者外部链接。一个具有外部链接的变量可以在一个多文件程序的任何地方使用。一个具有内部链接的变量可以在一个文件的任何地方使用。原创 2017-12-06 20:58:11 · 90 阅读 · 0 评论 -
C语言程序例题
1、代码改错——函数指针的使用#include int max(int x, int y) { return (x > y ? x : y); } int main() { int *p; //int (*p)(int ,int)定义指针类型错误int a, b, c;原创 2017-12-07 17:55:52 · 1181 阅读 · 0 评论 -
数组名与指针的关系 细节
#include int main(){ int a[10]; int *p1=a;//数组名指向数组首元素的地址 int (*p2)[10]=&a;//数组名取地址指向整个数组即一个指针指向10个元素的数组 printf("%d\n",p1); printf("%d\n",++p1);//步长4个字节 printf("%d\n",++p2);//步长原创 2018-01-07 18:08:33 · 186 阅读 · 0 评论 -
char str[]与char *str的区别
转载自 http://blog.csdn.net/wangluotong00/article/details/39367709今天做题的时候遇到一个问题,如何实现一个函数返回一个指针,返回一个整型值很简单,因为“C语言是按值传递的”,而想要返回一个指针,比如char型的指针,然后想在主调函数中使用被调函数的返回指针,分析了一下关于char str[]和char *str的区别下转载 2018-01-24 19:36:02 · 16248 阅读 · 0 评论 -
经典面试题-颠倒字符串单词顺序不变
编写一个C函数,将”I am from Shanghai”倒置为”shanghai from am i”,及将橘子中的单词位置倒置,而不改变单词内部结构。#include #include int Rerverse(char str[],int i)//递归算法 找到'\0'出口 返回一个0 { int k; char ch =str[i]; if(ch==原创 2018-01-26 15:07:54 · 813 阅读 · 0 评论 -
单链表的逆序(循环与递归)
初始状态,prev是NULL,head指向当前的头节点A,next指向A节点的下一个节点B。首先从A节点开始逆序,将A节点的next指针指向prev,因为prev的当前值是NULL,所以A节点就从链表中脱离出来了,然后移动head和next指针,使它们分别指向B节点和B的下一个节点C(因为当前的next已经指向B节点了,因此修改A节点的next指针不会导致链表丢失)。逆向节点A之后,链表的状态如图原创 2018-01-19 20:07:50 · 689 阅读 · 0 评论 -
复杂指针的声明
1.int a; 一个整型数 2.int *a; 一个指向整型数的指针 3.int **a; 一个指向指针的指针,它指向的指针是指向一个整型数的 4.int a[10]; 一个有10个整型数的数组 5.int *a[10]; 一个有10个指针的数组,每个指针是指向对应整型数的 6.int (*a)[10]; 一个指向有10个整型数数组的指针 7.int (*a)(原创 2018-02-07 15:35:11 · 183 阅读 · 0 评论 -
指针赋值,加减,比较
#include <stdio.h>int main(){ char a[] = "hello, world"; char *ptr = a; printf("%c\n",*(ptr+4)); printf("%c\n",ptr[4]); printf("%c\n",a[4]); printf("%c\n",*(a+4)); *(ptr+4) +=原创 2018-02-07 16:19:22 · 803 阅读 · 0 评论 -
const "金钟罩"的用法
9、const使用时的注意点,指出下面程序中哪句话出现错误 #include int main() { const int x = 1; int b = 10; int c = 20; const int* m = &b; int* const n = &b; const int* const s = &b;原创 2017-11-30 11:11:26 · 172 阅读 · 0 评论 -
C语言宏参数
#include #define STR(s) #s #define CONS(a, b) (int)(a##e##b) int main() { printf(STR(vck)); printf("\n"); printf("%d\n", CONS(2,3)); return 0; } 使用#原创 2017-11-30 11:05:20 · 286 阅读 · 0 评论 -
C语言题目解答
一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。#includeint main(){int i,j,num,sum;for(i=2;i{sum=0;for(j=1;j{if(i%j==0){sum+=j; }}if(sum==i){printf("%d=1",i)原创 2017-11-19 15:57:40 · 333 阅读 · 0 评论 -
C语言知识点及细节
1.二维数组每一个元素都返回一个指针 指针数组表示方法:&a:a:数组第0行的首地址a[0],*(a+0),*a:数组第0行0列元素的地址a+1,&a[1]:数组第1行的首地址a[1],*(a+1):数组第1行0列元素的地址a[1]+2,*(a+1)+2,&a[1][2]:数组第一行第2列元素的地址*(a[1]+2),原创 2017-11-16 16:13:13 · 290 阅读 · 0 评论 -
C语言自定义函数细节
return 0;在上面执行玩之后跳出整个程序!break;跳出当前循环继续执行!在函数体中对指向字符串指针的地址备份可以让执行到字符串最后一位 从之前备份的地址即字符串的开头重新执行之后的字符串操作如果不备份会导致之后的操作溢出字符串而失效。如题编写一个C函数,将”I am from shanghai ”倒置为”shanghai from am I”,即将句子中的单词原创 2017-11-14 21:41:02 · 2206 阅读 · 0 评论 -
C语言程序例题
1.设计一个洗牌发牌的程序#include#include#includeint main(){int a[4][13],d,i,j,m,num=0,b[52]={0};srand(time(NULL));for(i=0;i{for(j=0;j{a[i][j]=j+1;}}for(;num{d=rand()%52;for(m=原创 2017-11-13 11:01:28 · 268 阅读 · 0 评论 -
C语言用到新的一些常见函数
头文件下 常用的函数类型如mallo()、callo()、reallo()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等memst 函数(指定内存的地址,所要指定的ASCII的值,指定的内容大小)srand 函数 是随机数发生器的初始化函数 srand和rand配合产生伪随机数序列rand函数在产原创 2017-11-12 18:40:15 · 213 阅读 · 0 评论 -
C语言
1.#include int main(){ char a[1000]; int i; for(i = 0; i { a[i] = -1 – i; } printf(“%d\n”,strlen(a)) ; return 0; }结果为2原创 2017-11-09 18:47:53 · 142 阅读 · 0 评论 -
整理部分新学习的Linux命令
file:命令用来探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程。file [-beLvz][-f ][-m ...][文件或目录...] file(选项)参数-b:列出辨识结果时,不显示文件名称。-c:详细显示指令执行过程,便于排错或分析程序执行的情形。-f:指定名称文件-L:直接显示符号连接所指向的文件类别-v:显示版本信原创 2017-11-05 22:41:57 · 137 阅读 · 0 评论 -
gcc make和Makefile xshell基础
gcc 工具链编译过程是分为四个阶段进行的:即预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编 (Assembly)和连接(Linking)。编译指令:gcc test.c -o test预处理:gcc -E test.c -o test.i或 gcc -E test.c生成汇编代码:gcc -S test.i -o test.s原创 2017-11-08 07:57:18 · 926 阅读 · 0 评论 -
xshell脚本
Xshell 常见脚本编译细节问题 #! /bin/bash 指令下1.关于 test命令后面空格 2.if语句后面 then前的分号 调试有时不可省略 3.参数分隔的空格问题不可忽略!不可缺少!4.将.txt文件修改成.doc类型时 只能提取文件名 通过mv命令修改文件后缀.doc 1、编写一个名为iffile程序,它执行时判断/bin目录下date文件是否存在?#!原创 2017-11-08 19:33:43 · 12236 阅读 · 0 评论 -
xshell参数变量表达式
-f 存在且是普通文件-d 存在且是目录-s 存在且字节数大于0-r 存在且可读-w 存在且可写-x 存在且可执行-a 并且 -o 或者 !非test s 字符串s非空test s1=s2 字符串s1等于s2test s1!=s2 字符串s1不等于s2 test -z s 字符串长=0,即为空串test -n s 字符原创 2017-11-08 20:15:09 · 2256 阅读 · 0 评论 -
Linux系统下编辑C文件
Linux系统下调用 math.h函数时需要编译时加上 -lm1、已知 ch 是字符型变量,下面不正确的赋值语句是___a_。a. ch='a+b'; b. ch='\0'; c. ch='7'+'9'; d. ch=5+9;2、若整数值范围是 -32768 至 32767。在执行下面的表达式之后, i 的结果是什么?int i=32766;i=i+1; i =____原创 2017-11-10 19:16:26 · 1056 阅读 · 0 评论 -
内存分配方式及变量存在地点
1.用户态分为:BSS,数据段,代码段,堆,栈。BSS:用来存放未初始化的全局变量或静态变量。数据段:初始化的全局变量。代码段:代码、常量。堆:malloc栈:局部变量,形参。2.定义需要分配空间,声明不需要。3.小端:低字节存放在低地址,高字节存放在高地址。 大端:低字节存放在高地址,高字节存原创 2017-11-20 16:03:00 · 330 阅读 · 0 评论 -
关于Linux其他用户升级管理员权限
修改 /etc/sudoers 文件,找到下面一行,把前面的注释(#)去掉## Allows people in group wheel to run all commands%wheel ALL=(ALL) ALL然后修改用户,使其属于root组(wheel),命令如下:#usermod -g root tommy修改完毕,现在可以用tommy帐号登录,然后用命令 su -原创 2017-11-22 16:55:17 · 1801 阅读 · 0 评论