为了账号安全,请及时绑定邮箱和手机立即绑定

Linux C语言编程基本原理与实践

难度初级
时长 2小时 0分
学习人数
综合评分9.60
349人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.4 逻辑清晰
  • 可以利用管道将多个程序连接起来使用 例如: ./input.out | ./avg.out 程序input.out负责统计用户的输入,它输出统计结果,通过管道传递给程序avg.out avg.out以此为输入,进行处理
    查看全部
  • 管道 将上个程序的输出流转化为下个程序的输入流 管道表示符 | eg ls /etc/ | grep ab ps -e | grep ssh 命令: grep 要搜索的字符 //搜索包含此字符i的内容 ps //是显示瞬间行程的状态 -e 显示所有进程,环境变量
    查看全部
  • echo $? 获取程序返回值 各流在shell中代号 stdin ==0 stdout ==1 stderr ==2 标准输出流重定向 eg. ./a.out 1>> a.txt //输出接在文件末尾 ./a.out 1> a.txt //输出覆盖文件 (箭头前数字可不输入) 标准输入流重定向 eg. ./a.out 0< a.txt (箭头前数字可不输入) 标准错误流重定向 eg. ./a.out 2> a.txt ./a.out 2>> a.txt (箭头前数字必须输入)
    查看全部
  • 执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。 linux将所有设备看作文件,默认的输入设备为:键盘;默认的输出设备为:显示器。 标准输入流、输出流、错误流的使用格式: 标准输入流: scanf("%d", &a); ==fscanf(stdin, "%d", &a); 标准输出流: printf("input a:"); ==fprintf(stdout, "input a"); 标准错误流: fprintf(stderr, "a must > 0");
    查看全部
  • 1.标准main方法: int main(int argc,char* argv[]) { return 0; } 2.argc 接受收入输入的命令和参数的个数(以“空格”作为分割符) eg. ./main.c -l -a 此时argc为3 eg. ./main.c -l -a -s 此时argc为4 3.argv[] 接受命令和参数的字符串数组 实验代码: ---------------------------------------------------------------------------------------------- #include<stdio.h> int main(int argc,char* argv[]) { int i; printf("argv is %d\n",argc); for(i=0;i<argc;i++) { printf("argv[%d] is %s\n",i,argv[i]); } return 0; } ------------------------------------------------------------------------------------------
    查看全部
  • 命令1 && 命令2 (命令1成功则执行命令2) echo $! 得到错误码(0表示正常)
    查看全部
  • 源码有好多源文件,如果每次修改都编译会很繁琐,make会比gcc简单 约定一个Makefile,每次修改代码都把makefile重新修改一遍 以#开头的是注释 main:max.o min.o main.c (tab=6个空格必须用tab)gcc max.o min.o main.c -o main max.o:max.c gcc -c max.c min.o:min.c //生成依赖 gcc -c min-c cmd中 直接make,会自动定位到makefile进行编译
    查看全部
  • 如果工程很大,可以对多个文件分开编译。 例:gcc -c max.c -o max.o 然后把各个已经编译好的文件和尚未编译的文件关联起来一起再编译一遍。例:gcc max.o hello.c(注意:这里的hello.c文件里,已经不需要写include "max.c" 了) 总结:对于不经常修改的类库和框架,提前编译成静态库
    查看全部
  • cat abcd.c cat 查看文件内容
    查看全部
  • Linux下,管道用 “|” 表示,可以把两个程序连接起来 grep (搜索) ps (查询当前运行的进程) 例如:ls /etc/ | grep ab 把ls的结果输出流传递给grep程序,grep以此为输入,在其中搜索包含ab的项 ps -e:可以查看当前运行的的进行 ps -e/ | grep ssh:要查找某个目录下有多少个文件名包含"ssh"
    查看全部
  • cp 拷贝 cp a.c b.c
    查看全部
  • gcc -c abcd.c -o abcd.o ( -c 只编译不链接,产生.o文件,就是obj文件,不产生执行文件 -o 用来控制输出文件的名称 )
    查看全部
  • 重定向: > 覆盖文件中原有的记录 重定向: >> 新内容追加到文件末尾 ./a.out >> a.txt 重定向,输出到一个文件中,可累加输出; ./a.out > a.txt 不可累加;./a.out < a.txt 反向的重定向输出相当于输入argc 输出重定向:> 和 >> >表示覆盖,>>表示追加 例如:./a.out >> a.txt 将a.out的输出流重定向到a.txt 输入重定向:< 例如:./a.out < input.txt 将input.txt的内容作为输入流传递给程序a.out 错误流重定向:1>标准输出流重定向 2>标准错误流重定向 例如:./a.out 1>t.txt 2>f.txt 将正确的输出流重定向输出到t.txt,错误的输出流重定向输出到f.txt cat a.txt:读取文件a.txt的内容,显示到终端
    查看全部
  • 1.printf("xxxooo") 是对 fprintf(stdout,"xxxooo")的封装; 2.scanf("%d",&a) 是对 fscanf(stdin,"%d",&a)的封装;
    查看全部
  • #include <stdio.h> //标准输入输出 /* stdin stdout stderr */ int main() { printf("hello world!\n"); //输出功能由标准输出流完成,printf是系统封装后的 int a; scanf("%d", &a); //标准输入流,错误流是系统出错的时候的 printf("input value is : %d\n", a); return 0; } 在我们输入a.out时,当程序执行的一瞬间,系统给程序提供了一个进程,当程序启动时,系统也提供给程序一系列的指针。linux将所有的外设(摄像头,打印机云云)也罢等等,都视为文件。当启动应用程序时候,也当文件操作,会产生三个文件(stdin,stdout,stderr,即标准输入,输出,错误流)。 默认情况下,输入流就是键盘,stdout也可以切换默认为显示器,我们可以切换为网卡或者打印机,错误流同理。我们在启动文件的时候,都会产生这三个文件。 printf函数是一个封装过的函数: printf("Please input the value a:\n"); fprintf(stdout, "please input the value a:\n"); 因为stdout默认是显示器,上两句就是等价的,printf其实就是fprintf封装后得到的。 同样,我们也有scanf和fscanf的关系(下面两句是等价的): scanf("%d", &a); fscanf(stdin, "%d", &a); 同样,我们也有错误流: if(a<0){ fprintf(stderr, "the value must > 0\n"); return 1; } return 0; 如何让程序知道出错了,我们通过返回值1和0体现,再次编译cc cio.c -o a2.out,我们运行a2.out,输入2则正常执行,当输入-1,则有我们对应的提示,即错误流就发挥作用了。 其实Linux一个很大的系统,就是由这些类似的小工具完成的,当等于0是为正确,错的话为其他值。当然,标准的输入流,输出流,以及错误流也可以重定向。
    查看全部

举报

0/150
提交
取消
课程须知
本课程为C语言中级课程 学习本课程需要了解C语言以下基本语法:变量、常量、顺序、循环、分支、函数等。
老师告诉你能学到什么?
如何在真正的商业环境(Linux)下编写C语言程序 如何编译一个项目以及makefile如何编写 C语言真正的本领(制作小工具) 多个c语言小工具如何构成强大的软件系统

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!