❶ 在linux里用c语言编写创建进程、撤销进程,我是新手,求帮助,最好是有注释的简单易懂的。谢谢!
前面两人说的明显是线程的创建好不好?
用 pid_t fork(void);创建一个子进程
共享数据段和代码段,所以感觉上是会执行两次.
可以在父进程中添加一个wait函数,以便于子进程先退出,再父进程退出.
或者 pid_t vfork(void) 这也是创建一个进程,和前者区别不讲了.
撤销进程的话,在程序里面可以自己从代码角度去退出,也可以在两个进程运行时,通过命令 ps
来查看进程ID,,,在程序里面也可以获取进程的pid,ppid,可以直接在函数里面使用kill(),来终止进程.
❷ 一个linux下的C语言目录扫描程序,看不懂,求注释!越详细越好啊。会追加悬赏的!!
其实递归这种东西你如果理解了,根本不需要注释,如果不理解再多的注释还是不懂,这个是linux程序设计中的一段经典代码,代码的核心其实就这几句
if(S_ISDIR(statbuf.st_mode))
{
if(strcmp(".",entry->d_name)==0||strcmp("..",entry->d_name)==0)
continue;
printf("%*s%s/\n",depth,"",entry->d_name);
printdir(entry->d_name,depth+4);
}
首先确定是目录,要不然直接输出,然后如果的当前目录(.)或者父目录(..),则执行下一个循环其实就是跳过这两个目录,printf("%*s%s/\n",depth,"",entry->d_name);这句其实就是让显示的好看点,根据depth决定要打印出几个空格,书上有关于&*s的用法,接着就是再一次递归。。。。这个解释不来,只能意会不能言传。
❸ linux里C语言程序中\ 是什么意思
define x y
y是内容太长1行放不下,用“/”表示下一行内容是紧接上一行的,中间没有空行
不然define的内容里有了空行,就不再define里面而是下面的程序段了
❹ linux里的gedit里不支持c语言的/**/注释吗
gedit /usr/include/stdio.h
干脆彻底重装
❺ linux命令wc命令用C语言实现的代码,最好有注释,谢谢了
楼主你好,这个实现WC命令所有功能可能要花点时间,给你提供一个思路,使用C语言中有对文件的字符读函数,即使用fgetc,一个一个字符去读,字符记录数加一,当读到空格就跳过,并且单词记录数加一,读到换行,行记录数加一,一直读到文件结尾,就能计算出多少个字符,多少个单词,以及多少行了。
❻ Linux 环境下的C语言, 关于 kill 发送信号和 signal() 函数, 具体问题在以下代码的注释处
pause()会令目前的进程暂停(进入睡眠状态), 直到被信号(signal)所中断。
当50信号触动了,pause将退出睡眠状态,执行printf和return
❼ linux 如何将一行注释掉
1、使用grep -v "^#" 来去掉注释行
其中:-v 就是取相反的 ^# 表示以#开头的行eg. grep -v "^#" /etc/vsftpd/vsftpd.conf (也可以使用“>”来重写配置文件)
2、有时也会连同空行一起去掉,使用管道符来完成(^$表示空行 )
eg. grep -v "^#" httpd.conf | grep -v "^$" >> vsftpd.conf
上面用了2次 grep 过滤命令 ,也就是把空行和注解行过滤掉,再把剩下的内容追加保存为原来的配置文件 vsftpd.conf 这个时候就文件里的内容就没有注解行和空行了。
(7)linux下C语言的注释扩展阅读:
注意事项
1、^一行的开始 ^d以开头的 ^..1 第三个为1的字符 ^字符要放在匹配的字符前面
2、$一行的末尾 ^$ 表示空行 ^.$匹配一行一个字符的 $字符要放在匹配的字符后面
3、*匹配任意个字符 包括0个字符 .表示单个字符
4、可以屏蔽一个特殊的字符 *.pas 这里的*是特殊字符,这样就表示*.pas这个文件
5、逗号可以分割不同的匹配字符如[S,s]表示S或者s都可以
6、-表示一个范围,[1-9],[a-z],[A-Z] [1-9 A-Z a-z]任意的字符或者数字
A{2}B 表示A出现了2次 AAB
A{4,}B 表示A至少出现4次 AAAAB,AAAAAB
A{2,4}B 表示A出现2-4次 AAB AAAB AAAAB
[0-9]{3}.[0-9]{3}.[0-9]{3}.[0-9]{3} 0-999.0-999.0-999.0-999
cat server.conf |grep -v "^[#,;]" |grep -v "^$"
❽ linux系统在 vim编译器中,,,注释符/* - - - - - - -*/ 和 // 以及 # 都是什么意思啊有什么区别吗
//和#一样,都是注释只不过是单行注释。
:起始行号,结束行号 /* ------*/ 这个可以注释几行,中间可以断行,两边是匹配的。
系统:Linux
多行注释:
进入命令行模式-->
将光标移动到要注释的第一行位置-->
按ctrl + v进入 visual block模式-->
按字母j或k(或者上下移动键)纵向选中需要注释的行-->
按大写字母I,进入插入模式-->
输入注释符号,例如##(需要添加几列就输入几个)-->
按esc键就注释多行了。
取消多行注释(删除注释):进入命令行模式-->
将光标移动到要取消注释的第一行第一列位置-->
按ctrl + v进入 visual block模式-->
按小写字母h或l横向选中列的个数,按小写字母j或k纵向选中行的个数(同样可以使用上下左右移动键)-->按d键或者delete键就可多行取消注释。
(8)linux下C语言的注释扩展阅读:
linux在vim下怎么批量替换或者注释:
:%s/foo/bar/g
把全部foo替换为bar,全局替换
:s/foo/bar/g
当前行替换foo为bar
:%s/foo/bar/gc
替换每个foo为bar,但需要确认.
:%s//bar/gc
单词匹配替换, 需确认
%s/foo/bar/gci
忽略foo大小写,替换为bar, 需确认
❾ linux中C语言程序 代码说明注释
1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/ #include "stdio.h" main() {int i,j,result; for (i=1;i<10;i++) { for(j=1;j<10;j++) {
result=i*j;
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/ }
printf("\n");/*每一行后换行*/ }
}
2.
/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 兔子的规律为数列1,1,2,3,5,8,13,21....*/ main() {
long f1,f2;
int i; f1=f2=1;
for(i=1;i<=20;i++)
{ printf("%12ld %12ld",f1,f2);
if(i%2==0) printf("\n");/*控制输出,每行四个*/ f1=f1+f2; /*前两个月加起来赋值给第三个月*/ f2=f1+f2; /*前两个月加起来赋值给第三个月*/
} }
3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。*/ #include "math.h" main() {
int m,i,k,h=0,leap=1; printf("\n");
for(m=101;m<=200;m++) { k=sqrt(m+1); for(i=2;i<=k;i++)
if(m%i==0)
{leap=0;break;}
if(leap) /*内循环结束后,leap依然为1,则m是素数*/
{printf("%-4d",m);h++; if(h%10==0) printf("\n"); } leap=1; }
printf("\nThe total is %d",h);
}
4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程 找出1000以内的所有完数。*/ main() {
static int k[10]; int i,j,n,s;
for(j=2;j<1000;j++) {
n=-1; s=j;
for(i=1;i<j;i++) {if((j%i)==0) { n++; s=s-i; k[n]=i; } }
if(s==0)
{printf("%d is a wanshu: ",j); for(i=0;i<n;i++)
printf("%d,",k[i]); printf("%d\n",k[n]); } }
}
5、/*编程打印直角杨辉三角形*/ main()
{int i,j,a[6][6]; for(i=0;i<=5;i++) {a[i][i]=1;a[i][0]=1;} for(i=2;i<=5;i++)
for(j=1;j<=i-1;j++)
a[i][j]=a[i-1][j]+a[i-1][j-1]; for(i=0;i<=5;i++) {for(j=0;j<=i;j++)
printf("%4d",a[i][j]); printf("\n");}
}
这些程序都是经典的,而且很简单,希望对你有帮助,10个我写不下去,因为字数限制,还有一点就是,gcc是编译器,一般是在LINUX平台,实质上C语言的话代码是和WINDOWS没区别的,只是有些库函数的调用有区别,一般在LINUX平台写完一个源代码是.c文件,在GCC中通过命令行输入gcc xx.c就可以生产可执行文件了