Linux C编程与Shell编程在开发实用工具方面的相同点总结
2023-09-14 09:01:02 时间
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://dgd2010.blog.51cto.com/1539422/1712280
两者都需要做的事情:
(1)在程序运行前需要满足其运行环境,包括声明需要使用哪些库哪些文件,例如C中的条件编译,Shell编程中的部分条件判断,如文件是否存在、是否可执行
(2)具备灵活性和可移植性:充分运用宏定义或全局变量(Shell专用),尽管C中许多宏定义不仅仅用于程序运行还用于程序移植,Shell中的许多全局变量也可用于脚本的移植
(3)都需要做参数(argument)声明:允许用户给程序传入那些参数,不允许用户传入那些参数;哪些参数是不可同时使用,哪些参数必须同时使用
(4)定义程序是否接受长选项(--sargv)
(5)对用户的输入做过滤判断处理,各种输入情况的判断处理、非法输入和特殊字符的处理
(6)控制用户使用逻辑和避免流程缺陷:保证用户输入不会超出程序设计预期,如输入(字符串长度、数字长度)溢出,保证流程流向并正确处理和结束
(7)与操作系统结合紧密:符合操作系统规范和操作系统哲学,如恰当的函数返回值、程序退出返回值、接受管道、区分stdin、stdout、stderr等
(8)函数调用或外部程序调用,需要捕获异常并处理异常,来自用户或系统的中断处理、信号处理
(9)执行核心方法前做好一切事情
(10)main函数尽可能的清晰精短、注意功能的拆分,保持函数原子性,尽可能的将函数复用,使用必要的缩进
(11)站在巨人的肩膀上,避免重复造轮子,使用并保持一致的编程风格
(12)程序运行完,擦好自己的屁股,程序运行前后充分与用户交互
(13)适当卖弄一下自己的编程技巧和编程艺术
(14)有时需要注意语言国际化问题
(15)声明协议、许可和较为详细注释、TODO,允许他人使用,改写,再创作等
(16)接受bug,留下自己的联系方式,哈哈!
用Python3、NetCore、Shell分别开发一个Ubuntu版的定时提醒(附NetCore跨平台两种发布方式) Python3 与 NetCore基础语法对比:https://www.cnblogs.com/dunitian/p/9103673.html 彩色版最新版:https://www.cnblogs.com/dotnetcrazy/p/9111200.html 新增直接运行py文件的补充:请在py前面加上:#!/usr/bin/env python3 然后再执行 sudo chmod +x ./task.py 下次运行直接 ./task.py 平时经常用定时提醒来提高工作效率,到了Linux。
两者都需要做的事情:
(1)在程序运行前需要满足其运行环境,包括声明需要使用哪些库哪些文件,例如C中的条件编译,Shell编程中的部分条件判断,如文件是否存在、是否可执行
(2)具备灵活性和可移植性:充分运用宏定义或全局变量(Shell专用),尽管C中许多宏定义不仅仅用于程序运行还用于程序移植,Shell中的许多全局变量也可用于脚本的移植
(3)都需要做参数(argument)声明:允许用户给程序传入那些参数,不允许用户传入那些参数;哪些参数是不可同时使用,哪些参数必须同时使用
(4)定义程序是否接受长选项(--sargv)
(5)对用户的输入做过滤判断处理,各种输入情况的判断处理、非法输入和特殊字符的处理
(6)控制用户使用逻辑和避免流程缺陷:保证用户输入不会超出程序设计预期,如输入(字符串长度、数字长度)溢出,保证流程流向并正确处理和结束
(7)与操作系统结合紧密:符合操作系统规范和操作系统哲学,如恰当的函数返回值、程序退出返回值、接受管道、区分stdin、stdout、stderr等
(8)函数调用或外部程序调用,需要捕获异常并处理异常,来自用户或系统的中断处理、信号处理
(9)执行核心方法前做好一切事情
(10)main函数尽可能的清晰精短、注意功能的拆分,保持函数原子性,尽可能的将函数复用,使用必要的缩进
(11)站在巨人的肩膀上,避免重复造轮子,使用并保持一致的编程风格
(12)程序运行完,擦好自己的屁股,程序运行前后充分与用户交互
(13)适当卖弄一下自己的编程技巧和编程艺术
(14)有时需要注意语言国际化问题
(15)声明协议、许可和较为详细注释、TODO,允许他人使用,改写,再创作等
(16)接受bug,留下自己的联系方式,哈哈!
tag:Linux C编程,Linux哲学,UNIX哲学,Linux shell编程,Linux编程思想
--end--
本文出自 “通信,我的最爱” 博客,请务必保留此出处http://dgd2010.blog.51cto.com/1539422/1712280
用Python3、NetCore、Shell分别开发一个Ubuntu版的定时提醒(附NetCore跨平台两种发布方式) Python3 与 NetCore基础语法对比:https://www.cnblogs.com/dunitian/p/9103673.html 彩色版最新版:https://www.cnblogs.com/dotnetcrazy/p/9111200.html 新增直接运行py文件的补充:请在py前面加上:#!/usr/bin/env python3 然后再执行 sudo chmod +x ./task.py 下次运行直接 ./task.py 平时经常用定时提醒来提高工作效率,到了Linux。
相关文章
- 在Linux中安装JDK:踏上编程之路(在linux中安装jdk)
- 开发在Linux平台上编程:获得自由的软件开发之路(linux平台的软件)
- Linux环境下:如何下载依赖包(linux依赖包怎么下载)
- 查看Linux机器名:简易指南(查看linux机器名)
- 探究 Linux 中的文字编码之谜(linux文字编码)
- 开发Linux网络应用:实现充分利用c语言(linux网络编程c)
- Linux SH编程:快速掌握Shell命令基础(linuxshc)
- 解除Linux系统网卡绑定(解除linux绑定网卡)
- Linux下的循环控制:跳出枯燥的编程(linux循环语句)
- Linux管理技术实战指南(linux管理技术手册)
- Linux查看系统配置信息的简易方法(linux查看电脑配置)
- Linux分支:探索更多可能性(linux的分支)
- 结构Linux操作系统:不同分支的差异(linux的分支)
- 深入了解Linux分支图,为你的编程生涯打下扎实基础(linux分支图)
- 探秘Linux高级编程的奥秘(linux高级编程)
- 「Linux头文件下载」:为编译程序找到合适的库文件,下载头文件乃至正确地使用它们,是Linux编程中相当重要的步骤。(linux下载头文件)
- Linux内核编程:入门指南(linux内核编程入门)
- Linux下合并文件的快捷命令(linux 文件合并命令)
- 深入探索Linux类库,提高编程效率(linux类库)