首先需要有一个安装好gcc的Linux系统,然后进行代码的编写进行测试演示
工具:
Ubuntu1204
步骤
进入Linux系统后,启动一个shell命令终端,在Ubuntu的三键启动终端方法是同时按下Ctrl键+Alt键+t 启动后如下图所示:
在终端下敲入命令 gedit helloworldc 后按下回车键。这个命令会用gedit软件打开文件名为helloworldc的文件,如果该文件不存在工作目录,则gedit软件会自动新建一个名为helloworldc的文件。命令如下图所示:
gedit软件启动后 *** 作类似Windows下的记事本,编辑代码如图所示,并保存退出。图中的代码为:
现在回到终端 *** 作,输入命令 gcc helloworldc ,按下回车键进行编译,稍等片刻编译完成,请看图。如果不是如图所示结果也不要着急,检查下代码是否一样。
上面使用gcc命令把helloworldc文件转换为了名为aout的可执行文件 输入命令 /aout 就可以运行程序了,请看运行结果图。
linux提供了一系列消息队列的函数接口来让我们方便地使用它来实现进程间的通信。它的用法与其他两个system
v
pic机制,即信号量和共享内存相似。
1、msgget函数
该函数用来创建和访问一个消息队列。它的原型为:
int
msgget(key_t,
key,
int
msgflg);
与其他的ipc机制一样,程序必须提供一个键来命名某个特定的消息队列。msgflg是一个权限标志,表示消息队列的访问权限,它与文件的访问权限一样。msgflg可以与ipc_creat做或 *** 作,表示当key所命名的消息队列不存在时创建一个消息队列,如果key所命名的消息队列存在时,ipc_creat标志会被忽略,而只返回一个标识符。
它返回一个以key命名的消息队列的标识符(非零整数),失败时返回-1
msgsnd函数
该函数用来把消息添加到消息队列中。它的原型为:
int
msgsend(int
msgid,
const
void
msg_ptr,
size_t
msg_sz,
int
msgflg);
msgid是由msgget函数返回的消息队列标识符。
msg_ptr是一个指向准备发送消息的指针,但是消息的数据结构却有一定的要求,指针msg_ptr所指向的消息结构一定要是以一个长整型成员变量开始的结构体,接收函数将用这个成员来确定消息的类型。所以消息结构要定义成这样:
struct
my_message{
long
int
message_type;
/
the
data
you
wish
to
transfer/
};
msg_sz是msg_ptr指向的消息的长度,注意是消息的长度,而不是整个结构体的长度,也就是说msg_sz是不包括长整型消息类型成员变量的长度。
msgflg用于控制当前消息队列满或队列消息到达系统范围的限制时将要发生的事情。
如果调用成功,消息数据的一分副本将被放到消息队列中,并返回0,失败时返回-1
先给你列出stu2主目录的文件信息这个功能的功能代码:
#include
<unistdh>
#include
<direnth>
#include
<stdlibh>
#include
<stdioh>
void
read_dir()///==ls
{
char
buf[255];
buf=“你的stu2目录的
绝对路径
”;
DIR
dirp;
struct
dirent
direntp;
dirp
=
opendir(buf);
if(
dirp
!=
NULL
)
{
for(;;)
{
direntp
=
readdir(
dirp
);
if(
direntp
==
NULL
)
break;
if(DT_DIR
==
direntp->d_type)
printf(
"%s,%s",direntp->d_name,"
"
);
}
printf("\n");
closedir(
dirp
);
}
}
然后在你主函数里面调用一下试试。
gcc firstC -o first
说明:
1>编译当前目录下、名字叫做firstC的c源文件;
2>在当前目录下、生成名字叫first(这个名字可以自己随便写、符合linux命名规则就行)的可执行程序;
关于运行:
用ls -l 命令,可以看到当前目录下有一个绿色的文件、名字叫first,就是刚刚编译得到的文件;
使用命令“/first”既可运行(无双引号、双引号是用来说明的);
写完后,先按Esc退出编辑模式,然后按冒号(shift+:),然后按x就是保存。
你要的文件就有了。然后gcc c 就有了执行文件,但不是exe结尾,而是一个有执行权限的二进制文件。如果编译通过,可以直接用/跟你要的执行文件,执行的。
以上就是关于怎么在linux中编写c语言程序全部的内容,包括:怎么在linux中编写c语言程序、一个进程通信 的 linux程序编写、编写Linux C程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)