当前位置:首页 » 编程语言 » linuxc语言程序设计pdf
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

linuxc语言程序设计pdf

发布时间: 2023-07-23 01:17:36

A. 在Linux系统上使用c语言编程 - Hello World

C语言和 Linux 系统密切相关,因此在Linux系统上用C编程是一件非常自然的事。大部分的Linux kernel是用C写的,很多用户程序也是用C写的,比如GTK(Gnome和XFCE使用的图形库)。很多嵌入式系统和主机系统也是用C写的。因此,学习C将使我们具备解决Linux系统问题的能力。

C语言有40多年的 历史 ,由Brian Kernighan, Dennis Ritchie 和 Ken Thompson 在贝尔实验室创建。最初的操作系统Unix是用汇编语言编写的,因此有很多不便,当将Unix移植到PDP-11主机时,C语言被作为重新改写Unix系统的程序语言。1978年,Kernighan 和 Ritchie 编写了 “The C Programming Language”,推荐您阅读它。

C语言的编译过程如下:

在Linux上检查编译器的安装:

gcc -v

ld -v

第一个C语言程序:0001.hello.world.c

----------------------------------

#include

int main()

{

printf("Hello, world! ");

return 0;

}

--------------------------------------

编译:

gcc -o ./exes/0001.hello.world 0001.hello.world.c

运行

./exes/0001.hello.world

B. linux下怎么用C语言开发界面程序

选择1:
去QT的官方网站,里面提供免费下载,主要下载:如果你只用C的话,下载QT图形开发C的编程库,和开发文档(相当于windows的MSDN),如果你用C++的话,就下载QT图形开发C++的编程库,和开发文档.
选择2:
去GTK的官方网站,面里面提供免费下载,主要下载:如果你只用C的话,下载GTK图形开发C的编程库,和开发文档(相当于windows的MSDN),如果你用C++的话,就下载GTK图形开发C++的编程库,和开发文档.
选择3:
如果你需要数据库:去MYSQL的官方网站,面里面提供免费下载,主要下载:如果你只用C的话,下载MYSQL数据库开发C的编程库,和开发文档(相当于windows的MSDN),如果你用C++的话,就下载MYSQL数据库开发C++的编程库,和开发文档

C. linux下c语言编程

实在点,给你些命令操作操作,不过好象有点多,哈哈
Linux/Unix常用命令
1、目录操作
和DOS相似,UNIX采用树型目录管理结构,由根目录(/)开始一层层将子目录建下去,各子目录以 / 隔开。用户login后,工作目录的位置称为 home directory,由系统管理员设定。‘~’符号代表自己的home directory,例如 ~/myfile 是指自己home目录下myfile这个文件。
(1)显示目录文件 ls
执行格式: ls [-atFlgR] [name] (name可为文件或目录名称)
例: ls 显示出当前目录下的文件
ls -a 显示出包含隐藏文件的所有文件
ls -t 按照文件最后修改时间显示文件
ls -F 显示出当前目录下的文件及其类型
ls -l 显示目录下所有文件的许可权、拥有者、文件大小、修改时间及名称
ls -lg 同上
ls -R 显示出该目录及其子目录下的文件
注:ls与其它命令搭配使用可以生出很多技巧(最简单的如"ls -l | more"),更多用法请输入ls --help查看,其它命令的更多用法请输入 命令名 --help 查看.

(2)建新目录 mkdir
执行格式: mkdir directory-name
例: mkdir dir1 (新建一名为dir1的目录)
(3)删除目录 rmdir
执行格式: rmdir directory-name 或 rm directory-name
例:rmdir dir1 删除目录dir1,但它必须是空目录,否则无法删除
rm -r dir1 删除目录dir1及其下所有文件及子目录
rm -rf dir1 不管是否空目录,统统删除,而且不给出提示,使用时要小心

(4) 改变工作目录位置 cd
执行格式: cd [name]
例: cd 改变目录位置至用户login时的working directory
cd dir1 改变目录位置,至dir1目录
cd ~user 改变目录位置,至用户的working directory
cd .. 改变目录位置,至当前目录的上层目录
cd ../user 改变目录位置,至上一级目录下的user目录
cd /dir-name1/dir-name2 改变目录位置,至绝对路径(Full path)
cd - 回到进入当前目录前的上一个目录

(5)显示当前所在目录pwd
执行格式: pwd
(6)查看目录大小
执行格式: [-s] directory
例: dir1 显示目录dir1及其子目录容量(以kb为单位)
-s dir1 显示目录dir1的总容量
(7)显示环境变量
echo $HOME 显示家目录
echo $PATH 显示可执行文件搜索路径
env 显示所有环境变量(可能很多,最好用"env | more","env | grep PATH"等)
(8)修改环境变量,在bash下用export,如:
export PATH=$PATH:/usr/local/bin
想知道export的具体用法,可以用shell的help命令:help export
2、文件操作
(1)查看文件(可以是二进制的)内容 cat
执行格式:cat filename或more filename 或cat filename|more
例: cat file1 以连续显示方式,查看文件file1的内容
more file1
或 cat file1|more 以分页方式查看文件的内容
(2)删除文件 rm
执行格式: rm filename
例: rm file?
rm f*
(3)复制文件 cp
执行格式: cp [-r] source destination
例: cp file1 file2 将file1复制成file2
cp file1 dir1 将file1复制到目录dir1
cp /tmp/file1 将file1复制到当前目录
cp /tmp/file1 file2 将file1 复制到当前目录名为file2
cp -r dir1 dir2 (recursive )复制整个目录。
(4)移动或更改文件、目录名称mv
执行格式: mv source destination
例: mv file1 file2 将文件file1,更名为file2
mv file1 dir1 将文件file1,移到目录dir1下
mv dir1 dir2
(5)比较文件(可以是二进制的)或目录的内容 diff
执行格式: diff [-r] name1 name2 (name1、name2同为文件或目录)
例: diff file1 file2 比较file1与file2的不同处
diff -r dir1 dir2 比较dir1与dir2的不同处
(6)文件中字符串的查找 grep
执行格式: grep string file
例: grep abc file1 查找并列出串abc所在的整行文字
(7)文件或命令的路径寻找
执行格式一:whereis command 显示命令的路径
执行格式二:which command 显示路径及使用者所定义的别名
执行格式三:whatis command 显示命令的功能摘要

(8)建立文件或目录的链接 ln
例: ln source target1 建立source文件(已存在)的硬链接,命名为target1
ln -s source target2 建立source文件的符号链接,命名为target2

文件编辑器vi
vi是在UNIX 上被广泛使用的中英文编辑软件。vi是visual editor的缩写,是UNIX提供给用户的一个窗口化编辑环境。
进入vi,直接执行vi编辑程序即可。
例:$vi test.c
显示器出现vi的编辑窗口,同时vi会将文件复制一份至缓冲区(buffer)。vi先对缓冲区的文件进行编辑,保留在磁盘中的文件则不变。编辑完成后,使用者可决定是否要取代原来旧有的文件。
1、vi的工作模式
vi提供二种工作模式:输入模式(insert mode)和命令模式(command mode)。使用者进入vi后,即处在命令模式下,此刻键入的任何字符皆被视为命令,可进行删除、修改、存盘等操作。要输入信息,应转换到输入模式。
(1)命令模式
在输入模式下,按ESC可切换到命令模式。命令模式下,可选用下列指令离开vi:
:q! 离开vi,并放弃刚在缓冲区内编辑的内容
:wq 将缓冲区内的资料写入磁盘中,并离开vi
:ZZ 同wq
:x 同wq
:w 将缓冲区内的资料写入磁盘中,但并不离开vi
:q 离开vi,若文件被修改过,则要被要求确认是否放弃修改的内容,此指令可与:w配合使用

(2)命令模式下光标的移动
H 左移一个字符
J 下移一个字符
K 上移一个字符
L 右移一个字符
0 移至该行的首
$ 移至该行的末
^ 移至该行的第一个字符处
H 移至窗口的第一列
M 移至窗口中间那一列
L 移至窗口的最后一列
G 移至该文件的最后一列
W, W 下一个单词 (W 忽略标点)
B, B 上一个单词 (B 忽略标点)
+ 移至下一列的第一个字符处
- 移至上一列的第一个字符处
( 移至该句首
) 移至该句末
{ 移至该段首
} 移至该段末
NG 移至该文件的第n列
N+ 移至光标所在位置之后第n列
n- 移至光标所在位置之前第n列

(3)输入模式
输入以下命令即可进入vi输入模式:
a(append) 在光标之后加入资料
A 在该行之末加入资料
i(insert) 在光标之前加入资料
I 在该行之首加入资料
o(open) 新增一行于该行之下,供输入资料用
O 新增一行于该行之上,供输入资料用
dd 删除当前光标所在行
X 删除当前光标字符
x 删除当前光标之前字符
U 撤消
• 重做
F 查找

ESC键 离开输入模式

GNU C编译器
LINUX上可用的C编译器是GNU C编译器,它建立在自由软件基金会编程许可证的基础上,因此可以自由发布。
LINUX 上的GNU C编译器(GCC)是一个全功能的ANCI C兼容编译器。下面介绍GCC和一些GCC编译器最常用的选项。
1、使用GCC
通常后跟一些选项和文件名来使用GCC编译器。GCC命令的基本用法如下:
gcc [options] [filenames]
命令行选项指定的编译过程中的具体操作
2、GCC常用选项
GCC有超过100个的编译选项可用,这些选项中的许多可能永远都不会用到,但一些主要的选项将会频繁使用。很多的GCC选项包括一个以上的字符,因此必须为每个选项指定各自的连字符,并且就像大多数LINUX 命令一样不能在一个单独的连字符后跟一组选项。例如:
gcc test.c
编译成功后,当前目录下就产生了一个可执行文件a.out。
也可用-o选项来为即将产生的可执行文件指定一个文件名来代替a.out。例如:
gcc -o count count.c
此时得到的可执行文件就不再是a.out,而是count。
3、执行文件
格式: ./可执行文件名
例:./a.out
./count

D. 在Linux系统中,如何运行一个C语言程序

1、打开kali linux的终端。创建一个文件并命名为test.c。在终端输入:touch test.c。

E. 《C程序设计语言第2版·新版》pdf下载在线阅读全文,求百度网盘云资源

《C程序设计语言(第2版·新版)》([美] Brian W. Kernighan)电子书网盘下载免费在线阅读

链接: https://pan..com/s/1txJqYzmjYS-BSw43eLWrnQ

提取码: sejp

书名:C程序设计语言(第2版·新版)

作者:[美] Brian W. Kernighan

译者:徐宝文

豆瓣评分:9.4

出版社:机械工业出版社

出版年份:2004-1

页数:258

内容简介:

在计算机发展的历史上,没有哪一种程序设计语言像C语言这样应用广泛。本书作者是C语言的设计者之一Dennis M. Ritchie和着名计算机科学家Brian W. Kernighan合着的一本介绍C语言的权威经典着作。我们现在见到的大量论述C语言程序设计的教材和专着均以此书为蓝本。

原着第1版中介绍的C语言成为后来广泛使用的C语言版本——标准C的基础。人们熟知的“hello,World"程序就是由本书首次引入的,现在,这一程序已经成为众多程序设计语言入门的第一课。原着第2版根据1987年制定的ANSIC标准做了适当的修订.引入了最新的语言形式,并增加了新的示例,通过简洁的描述、典型的示例,作者全面、系统、准确地讲述了C语言的各个特性以及程序设计的基本方法。

对于计算机从业人员来说,本书是一本必读的程序设计语言方面的参考书。

作者简介:

Brian W. Kernighan,贝尔实验室计算科学研究中心高级研究人员,着名的计算机科学家。参加了UNIX系统、C语言、AWK语言和许多其他系统的开发,同时出版了许多在计算机领域具有影响的着作,如《The Elements of Programming Style》《The Practice of Programming》《The UNIX Programming Environment》《The AWK Language》《Software Tools》等。

Dennis M. Ritchie,1967年加入贝尔实验室。他和 Ken L. Thompson 两人共同设计并实现的C语言改变了程序设计语言发展的轨迹,是程序设计语言发展过程中的一个重要里程碑。与此同时,他们还设计并实现了UNIX操作系统。正是由于这两项巨大贡献,Dennis M. Ritchie 于1983年获得了计算机界的最高奖——图灵奖。此外,他还获得了ACM、IEEE、贝尔实验室等授予的多种奖项.。

F. 谁有嵌入式linuxC语言应用程序设计pdf版

尚观-嵌入式高级C语言进阶培训
C语言概述-01C语言概念、发展历史、特点http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24675555
C语言概述-02C基本程序结构等http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24679413
C语言概述-03C语言第2个程序第3个程序http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24679415
C语言概述-04C程序开发过程http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24676741
C语言概述-05C语言开发常见错误分析http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24676797
C语言概述-06C语言 开发语言和开发工具的关系http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24684950
C编程基础-01C语言基本数据类型http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24683553
C编程基础-02常量和变量http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24688154
C编程基础-03const类型修饰符概念http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24677311
2C编程基础-03const类型修饰符实例
http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24720572
C编程基础-04volatile类型修饰符http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24685486
C编程基础-05extern,static存储http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24677519
C编程基础-06register存储类型说明符http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24685644
C编程基础-07auto存储类型说明符http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24685678
C编程基础-08操作符-算术操作符http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24677935
C编程基础-09操作符-sizeof操作符http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24686154
C编程基础-09操作符-关系逻辑操作符http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24678079
C编程基础-09操作符-位运算操作符http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24686402
C编程基础-10表达式http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24678315
C编程基础-11if条件判断结构http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24686640
C编程基础-12switch条件判断结构http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24686726
C编程基础-13for循环结构http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24686792
C编程基础-14while循环结构http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24678685
C编程基础-15跳转语句http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24679987
C编程基础-16模块化设计方法http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24678881
C编程基础-17函数的声明和定义http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24687236
C编程基础-18函数的调用http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24679113
C编程基础-19递归函数http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24679189
C编程基础-20函数返回值http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24680021
C编程进阶-1数组http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24688354
C编程进阶-1字符串http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24688500
C编程进阶-3指针http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24691778
C编程进阶-4函数指针http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24680581
C编程进阶-5动态类型分配http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24688820
C编程进阶-6指针常见错误http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24688856
C编程进阶-7指针与数组http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24691814
C编程进阶-8编译预处理http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24682609
C编程进阶-9结构体基础http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24682671
C编程进阶-10链表http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24683653
C编程进阶-11共用体http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24682755
C编程进阶-12位段http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24690968
C编程进阶-13枚举http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24690978
C编程进阶-14文件http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24691004
C编程总结http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=3463501&uid=1320045357&t=1#24691044

G. 在Linux下用C语言编程

4。守护进程的创建
如果你在DOS时代编写过程序,那么你也许知道在DOS下为了编写一个常驻内存的程序我们要编写多少代码了.相反如果在Linux下编写一个"常驻内存"的程序却是很容易的.我们只要几行代码就可以做到. 实际上由于Linux是多任务操作系统,我们就是不编写代码也可以把一个程序放到后台去执行的.我们只要在命令后面加上&符号SHELL就会把我们的程序放到后台去运行的. 这里我们"开发"一个后台检查邮件的程序.这个程序每个一个指定的时间回去检查我们的邮箱,如果发现我们有邮件了,会不断的报警(通过机箱上的小喇叭来发出声音). 后面有这个函数的加强版本加强版本
后台进程的创建思想: 首先父进程创建一个子进程.然后子进程杀死父进程(是不是很无情?). 信号处理所有的工作由子进程来处理.

#include
#include
#include
#include
#include
#include
#include

/* Linux 的默任个人的邮箱地址是 /var/spool/mail/用户的登录名 */

#define MAIL "/var/spool/mail/hoyt"

/* 睡眠10秒钟 */

#define SLEEP_TIME 10

main(void)
{
pid_t child;

if((child=fork())==-1)
{
printf("Fork Error:%s\n",strerror(errno));
exit(1);
}
else if(child>0)
while(1);
if(kill(getppid(),SIGTERM)==-1)
{
printf("Kill Parent Error:%s\n",strerror(errno));
exit(1);
}
{
int mailfd;

while(1)
{
if((mailfd=open(MAIL,O_RDONLY))!=-1)
{
fprintf(stderr,"%s","\007");
close(mailfd);
}
sleep(SLEEP_TIME);
}
}
}

你可以在默认的路径下创建你的邮箱文件,然后测试一下这个程序.当然这个程序还有很多地方要改善的.我们后面会对这个小程序改善的,再看我的改善之前你可以尝试自己改善一下.比如让用户指定邮相的路径和睡眠时间等等.相信自己可以做到的.动手吧,勇敢的探险者.
好了进程一节的内容我们就先学到这里了.进程是一个非常重要的概念,许多的程序都会用子进程.创建一个子进程是每一个程序员的基本要求!