C语言问题。 C语言问题,求助

C\u8bed\u8a00\u4e2d\u5e38\u89c1\u9519\u8bef

1.\u4e66\u5199\u6807\u8bc6\u7b26\u65f6\uff0c\u5ffd\u7565\u4e86\u5927\u5c0f\u5199\u5b57\u6bcd\u7684\u533a\u522b\u3002
main()
{
int a=5;
printf("%d",A);
}
\u7f16\u8bd1\u7a0b\u5e8f\u628aa\u548cA\u8ba4\u4e3a\u662f\u4e24\u4e2a\u4e0d\u540c\u7684\u53d8\u91cf\u540d\uff0c\u800c\u663e\u793a\u51fa\u9519\u4fe1\u606f\u3002C\u8ba4\u4e3a\u5927\u5199\u5b57\u6bcd\u548c\u5c0f\u5199\u5b57\u6bcd\u662f\u4e24\u4e2a\u4e0d\u540c\u7684\u5b57\u7b26\u3002\u4e60\u60ef\u4e0a\uff0c\u7b26\u53f7\u5e38\u91cf\u540d\u7528\u5927\u5199\uff0c\u53d8\u91cf\u540d\u7528\u5c0f\u5199\u8868\u793a\uff0c\u4ee5\u589e\u52a0\u53ef\u8bfb\u6027\u3002
2.\u5ffd\u7565\u4e86\u53d8\u91cf\u7684\u7c7b\u578b\uff0c\u8fdb\u884c\u4e86\u4e0d\u5408\u6cd5\u7684\u8fd0\u7b97\u3002
main()
{
float a,b;
printf("%d",a%b);
}
%\u662f\u6c42\u4f59\u8fd0\u7b97\uff0c\u5f97\u5230a/b\u7684\u6574\u4f59\u6570\u3002\u6574\u578b\u53d8\u91cfa\u548cb\u53ef\u4ee5\u8fdb\u884c\u6c42\u4f59\u8fd0\u7b97\uff0c\u800c\u5b9e\u578b\u53d8\u91cf\u5219\u4e0d\u5141\u8bb8\u8fdb\u884c\u201c\u6c42\u4f59\u201d\u8fd0\u7b97\u3002
3.\u5c06\u5b57\u7b26\u5e38\u91cf\u4e0e\u5b57\u7b26\u4e32\u5e38\u91cf\u6df7\u6dc6\u3002
char c;
c="a";
\u5728\u8fd9\u91cc\u5c31\u6df7\u6dc6\u4e86\u5b57\u7b26\u5e38\u91cf\u4e0e\u5b57\u7b26\u4e32\u5e38\u91cf\uff0c\u5b57\u7b26\u5e38\u91cf\u662f\u7531\u4e00\u5bf9\u5355\u5f15\u53f7\u62ec\u8d77\u6765\u7684\u5355\u4e2a\u5b57\u7b26\uff0c\u5b57\u7b26\u4e32\u5e38\u91cf\u662f\u4e00\u5bf9\u53cc\u5f15\u53f7\u62ec\u8d77\u6765\u7684\u5b57\u7b26\u5e8f\u5217\u3002C\u89c4\u5b9a\u4ee5\u201c\\u201d\u4f5c\u5b57\u7b26\u4e32\u7ed3\u675f\u6807\u5fd7\uff0c\u5b83\u662f\u7531\u7cfb\u7edf\u81ea\u52a8\u52a0\u4e0a\u7684\uff0c\u6240\u4ee5\u5b57\u7b26\u4e32\u201ca\u201d\u5b9e\u9645\u4e0a\u5305\u542b\u4e24\u4e2a\u5b57\u7b26\uff1a\u2018a'\u548c\u2018\'\uff0c\u800c\u628a\u5b83\u8d4b\u7ed9\u4e00\u4e2a\u5b57\u7b26\u53d8\u91cf\u662f\u4e0d\u884c\u7684\u3002
4.\u5ffd\u7565\u4e86\u201c=\u201d\u4e0e\u201c==\u201d\u7684\u533a\u522b\u3002
\u5728\u8bb8\u591a\u9ad8\u7ea7\u8bed\u8a00\u4e2d\uff0c\u7528\u201c=\u201d\u7b26\u53f7\u4f5c\u4e3a\u5173\u7cfb\u8fd0\u7b97\u7b26\u201c\u7b49\u4e8e\u201d\u3002\u5982\u5728BASIC\u7a0b\u5e8f\u4e2d\u53ef\u4ee5\u5199
if (a=3) then \u2026
\u4f46C\u8bed\u8a00\u4e2d\uff0c\u201c=\u201d\u662f\u8d4b\u503c\u8fd0\u7b97\u7b26\uff0c\u201c==\u201d\u662f\u5173\u7cfb\u8fd0\u7b97\u7b26\u3002\u5982\uff1a
if (a==3) a=b;
\u524d\u8005\u662f\u8fdb\u884c\u6bd4\u8f83\uff0ca\u662f\u5426\u548c3\u76f8\u7b49\uff0c\u540e\u8005\u8868\u793a\u5982\u679ca\u548c3\u76f8\u7b49\uff0c\u628ab\u503c\u8d4b\u7ed9a\u3002\u7531\u4e8e\u4e60\u60ef\u95ee\u9898\uff0c\u521d\u5b66\u8005\u5f80\u5f80\u4f1a\u72af\u8fd9\u6837\u7684\u9519\u8bef\u3002
5.\u5fd8\u8bb0\u52a0\u5206\u53f7\u3002
\u5206\u53f7\u662fC\u8bed\u53e5\u4e2d\u4e0d\u53ef\u7f3a\u5c11\u7684\u4e00\u90e8\u5206\uff0c\u8bed\u53e5\u672b\u5c3e\u5fc5\u987b\u6709\u5206\u53f7\u3002
a=1
b=2
\u7f16\u8bd1\u65f6\uff0c\u7f16\u8bd1\u7a0b\u5e8f\u5728\u201ca=1\u201d\u540e\u9762\u6ca1\u53d1\u73b0\u5206\u53f7\uff0c\u5c31\u628a\u4e0b\u4e00\u884c\u201cb=2\u201d\u4e5f\u4f5c\u4e3a\u4e0a\u4e00\u884c\u8bed\u53e5\u7684\u4e00\u90e8\u5206\uff0c\u8fd9\u5c31\u4f1a\u51fa\u73b0\u8bed\u6cd5\u9519\u8bef\u3002\u6539\u9519\u65f6\uff0c\u6709\u65f6\u5728\u88ab\u6307\u51fa\u6709\u9519\u7684\u4e00\u884c\u4e2d\u672a\u53d1\u73b0\u9519\u8bef\uff0c\u5c31\u9700\u8981\u770b\u4e00\u4e0b\u4e0a\u4e00\u884c\u662f\u5426\u6f0f\u6389\u4e86\u5206\u53f7\u3002
{ z=x+y;
t=z/100;
printf("%f",t);
}
\u5bf9\u4e8e\u590d\u5408\u8bed\u53e5\u6765\u8bf4\uff0c\u6700\u540e\u4e00\u4e2a\u8bed\u53e5\u4e2d\u6700\u540e\u7684\u5206\u53f7\u4e0d\u80fd\u5ffd\u7565\u4e0d\u5199(\u8fd9\u662f\u548cPASCAL\u4e0d\u540c\u7684)\u3002
6.\u591a\u52a0\u5206\u53f7\u3002
\u5bf9\u4e8e\u4e00\u4e2a\u590d\u5408\u8bed\u53e5\uff0c\u5982\uff1a
{ z=x+y;
t=z/100;
printf("%f",t);
};
\u590d\u5408\u8bed\u53e5\u7684\u82b1\u62ec\u53f7\u540e\u4e0d\u5e94\u518d\u52a0\u5206\u53f7\uff0c\u5426\u5219\u5c06\u4f1a\u753b\u86c7\u6dfb\u8db3\u3002
\u53c8\u5982\uff1a
if (a%3==0);
I++;
\u672c\u662f\u5982\u679c3\u6574\u9664a\uff0c\u5219I\u52a01\u3002\u4f46\u7531\u4e8eif (a%3==0)\u540e\u591a\u52a0\u4e86\u5206\u53f7\uff0c\u5219if\u8bed\u53e5\u5230\u6b64\u7ed3\u675f\uff0c\u7a0b\u5e8f\u5c06\u6267\u884cI++\u8bed\u53e5\uff0c\u4e0d\u8bba3\u662f\u5426\u6574\u9664a\uff0cI\u90fd\u5c06\u81ea\u52a8\u52a01\u3002
\u518d\u5982\uff1a
for (I=0;I<5;I++);
{scanf("%d",&x);
printf("%d",x);}
\u672c\u610f\u662f\u5148\u540e\u8f93\u51655\u4e2a\u6570\uff0c\u6bcf\u8f93\u5165\u4e00\u4e2a\u6570\u540e\u518d\u5c06\u5b83\u8f93\u51fa\u3002\u7531\u4e8efor()\u540e\u591a\u52a0\u4e86\u4e00\u4e2a\u5206\u53f7\uff0c\u4f7f\u5faa\u73af\u4f53\u53d8\u4e3a\u7a7a\u8bed\u53e5\uff0c\u6b64\u65f6\u53ea\u80fd\u8f93\u5165\u4e00\u4e2a\u6570\u5e76\u8f93\u51fa\u5b83\u3002
7.\u8f93\u5165\u53d8\u91cf\u65f6\u5fd8\u8bb0\u52a0\u5730\u5740\u8fd0\u7b97\u7b26\u201c&\u201d\u3002
int a,b;
scanf("%d%d",a,b);
\u8fd9\u662f\u4e0d\u5408\u6cd5\u7684\u3002Scanf\u51fd\u6570\u7684\u4f5c\u7528\u662f\uff1a\u6309\u7167a\u3001b\u5728\u5185\u5b58\u7684\u5730\u5740\u5c06a\u3001b\u7684\u503c\u5b58\u8fdb\u53bb\u3002\u201c&a\u201d\u6307a\u5728\u5185\u5b58\u4e2d\u7684\u5730\u5740\u3002
8.\u8f93\u5165\u6570\u636e\u7684\u65b9\u5f0f\u4e0e\u8981\u6c42\u4e0d\u7b26\u3002\u2460scanf("%d%d",&a,&b);
\u8f93\u5165\u65f6\uff0c\u4e0d\u80fd\u7528\u9017\u53f7\u4f5c\u4e24\u4e2a\u6570\u636e\u95f4\u7684\u5206\u9694\u7b26\uff0c\u5982\u4e0b\u9762\u8f93\u5165\u4e0d\u5408\u6cd5\uff1a
3\uff0c4
\u8f93\u5165\u6570\u636e\u65f6\uff0c\u5728\u4e24\u4e2a\u6570\u636e\u4e4b\u95f4\u4ee5\u4e00\u4e2a\u6216\u591a\u4e2a\u7a7a\u683c\u95f4\u9694\uff0c\u4e5f\u53ef\u7528\u56de\u8f66\u952e\uff0c\u8df3\u683c\u952etab\u3002
\u2461scanf("%d,%d",&a,&b);
C\u89c4\u5b9a\uff1a\u5982\u679c\u5728\u201c\u683c\u5f0f\u63a7\u5236\u201d\u5b57\u7b26\u4e32\u4e2d\u9664\u4e86\u683c\u5f0f\u8bf4\u660e\u4ee5\u5916\u8fd8\u6709\u5176\u5b83\u5b57\u7b26\uff0c\u5219\u5728\u8f93\u5165\u6570\u636e\u65f6\u5e94\u8f93\u5165\u4e0e\u8fd9\u4e9b\u5b57\u7b26\u76f8\u540c\u7684\u5b57\u7b26\u3002\u4e0b\u9762\u8f93\u5165\u662f\u5408\u6cd5\u7684\uff1a
3\uff0c4
\u6b64\u65f6\u4e0d\u7528\u9017\u53f7\u800c\u7528\u7a7a\u683c\u6216\u5176\u5b83\u5b57\u7b26\u662f\u4e0d\u5bf9\u7684\u3002
3 4 3\uff1a4
\u53c8\u5982\uff1a
scanf("a=%d,b=%d",&a,&b);
\u8f93\u5165\u5e94\u5982\u4ee5\u4e0b\u5f62\u5f0f\uff1a
a=3,b=4
9.\u8f93\u5165\u5b57\u7b26\u7684\u683c\u5f0f\u4e0e\u8981\u6c42\u4e0d\u4e00\u81f4\u3002
\u5728\u7528\u201c%c\u201d\u683c\u5f0f\u8f93\u5165\u5b57\u7b26\u65f6\uff0c\u201c\u7a7a\u683c\u5b57\u7b26\u201d\u548c\u201c\u8f6c\u4e49\u5b57\u7b26\u201d\u90fd\u4f5c\u4e3a\u6709\u6548\u5b57\u7b26\u8f93\u5165\u3002
scanf("%c%c%c",&c1,&c2,&c3);
\u5982\u8f93\u5165a b c
\u5b57\u7b26\u201ca\u201d\u9001\u7ed9c1\uff0c\u5b57\u7b26\u201c \u201d\u9001\u7ed9c2\uff0c\u5b57\u7b26\u201cb\u201d\u9001\u7ed9c3\uff0c\u56e0\u4e3a%c\u53ea\u8981\u6c42\u8bfb\u5165\u4e00\u4e2a\u5b57\u7b26\uff0c\u540e\u9762\u4e0d\u9700\u8981\u7528\u7a7a\u683c\u4f5c\u4e3a\u4e24\u4e2a\u5b57\u7b26\u7684\u95f4\u9694\u3002
10.\u8f93\u5165\u8f93\u51fa\u7684\u6570\u636e\u7c7b\u578b\u4e0e\u6240\u7528\u683c\u5f0f\u8bf4\u660e\u7b26\u4e0d\u4e00\u81f4\u3002
\u4f8b\u5982\uff0ca\u5df2\u5b9a\u4e49\u4e3a\u6574\u578b\uff0cb\u5b9a\u4e49\u4e3a\u5b9e\u578b
a=3;b=4.5;
printf("%f%d\n",a,b);
\u7f16\u8bd1\u65f6\u4e0d\u7ed9\u51fa\u51fa\u9519\u4fe1\u606f\uff0c\u4f46\u8fd0\u884c\u7ed3\u679c\u5c06\u4e0e\u539f\u610f\u4e0d\u7b26\u3002\u8fd9\u79cd\u9519\u8bef\u5c24\u5176\u9700\u8981\u6ce8\u610f\u3002

\u8fd9\u9898\u662f\u8ff7\u60d1\u4eba\u7528\u7684\u2026\u2026
\u56e0\u4e3a\u5faa\u73af\u5185\u90e8\u6ca1\u6709break\uff0c\u6240\u4ee5for\u4f1a\u4e00\u76f4\u8fd0\u884c\u4e0b\u53bb\uff0c\u76f4\u5230a=11\uff0c\u3002\u8fd9\u65f6a\u5927\u4e8e10\uff0c\u5faa\u73af\u7ed3\u675f\u3002
\u6700\u7ec8a\u7684\u503c\u4e3a11

[color=blue]2)Linux程序设计入门--进程介绍[/color]
Linux下进程的创建
前言:
这篇文章是用来介绍在Linux下和进程相关的各个概念.我们将会学到:
进程的概念
进程的身份
进程的创建
守护进程的创建
----------------------------------------------------------------------------
----
1。进程的概念
Linux操作系统是面向多用户的.在同一时间可以有许多用户向操作系统发出各种命
令.那么操作系统是怎么实现多用户的环境呢? 在现代的操作系统里面,都有程序和进程
的概念.那么什么是程序,什么是进程呢? 通俗的讲程序是一个包含可以执行代码的文件
,是一个静态的文件.而进程是一个开始执行但是还没有结束的程序的实例.就是可执行文
件的具体实现. 一个程序可能有许多进程,而每一个进程又可以有许多子进程.依次循环
下去,而产生子孙进程. 当程序被系统调用到内存以后,系统会给程序分配一定的资源(内
存,设备等等)然后进行一系列的复杂操作,使程序变成进程以供系统调用.在系统里面只
有进程没有程序,为了区分各个不同的进程,系统给每一个进程分配了一个ID(就象我们的
身份证)以便识别. 为了充分的利用资源,系统还对进程区分了不同的状态.将进程分为新
建,运行,阻塞,就绪和完成五个状态. 新建表示进程正在被创建,运行是进程正在运行,阻
塞是进程正在等待某一个事件发生,就绪是表示系统正在等待CPU来执行命令,而完成表示
进程已经结束了系统正在回收资源. 关于进程五个状态的详细解说我们可以看《操作系
统》上面有详细的解说。
2。进程的标志
上面我们知道了进程都有一个ID,那么我们怎么得到进程的ID呢?系统调用getpid可
以得到进程的ID,而getppid可以得到父进程(创建调用该函数进程的进程)的ID.
#include <unistd>;
pid_t getpid(void);
pid_t getppid(void);
进程是为程序服务的,而程序是为了用户服务的.系统为了找到进程的用户名,还为进程和
用户建立联系.这个用户称为进程的所有者.相应的每一个用户也有一个用户ID.通过系统
调用getuid可以得到进程的所有者的ID.由于进程要用到一些资源,而Linux对系统资源是
进行保护的,为了获取一定资源进程还有一个有效用户ID.这个ID和系统的资源使用有关
,涉及到进程的权限. 通过系统调用geteuid我们可以得到进程的有效用户ID. 和用户ID
相对应进程还有一个组ID和有效组ID系统调用getgid和getegid可以分别得到组ID和有效
组ID
#include <unistd>;
#include <sys/types.h>;

uid_t getuid(void);
uid_t geteuid(void);
gid_t getgid(void);
git_t getegid(void);
有时候我们还会对用户的其他信息感兴趣(登录名等等),这个时候我们可以调用getpwui
d来得到.
struct passwd {
char *pw_name; /* 登录名称 */
char *pw_passwd; /* 登录口令 */
uid_t pw_uid; /* 用户ID */
gid_t pw_gid; /* 用户组ID */
char *pw_gecos; /* 用户的真名 */
char *pw_dir; /* 用户的目录 */
char *pw_shell; /* 用户的SHELL */
};
#include <pwd.h>;
#include <sys/types.h>;

struct passwd *getpwuid(uid_t uid);
下面我们学习一个实例来实践一下上面我们所学习的几个函数:
#include <unistd.h>;
#include <pwd.h>;
#include <sys/types.h>;
#include <stdio.h>;
int main(int argc,char **argv)
{
pid_t my_pid,parent_pid;
uid_t my_uid,my_euid;
gid_t my_gid,my_egid;
struct passwd *my_info;
my_pid=getpid();
parent_pid=getppid();
my_uid=getuid();
my_euid=geteuid();
my_gid=getgid();
my_egid=getegid();
my_info=getpwuid(my_uid);
printf("Process ID:%ld\n",my_pid);
printf("Parent ID:%ld\n",parent_pid);
printf("User ID:%ld\n",my_uid);
printf("Effective User ID:%ld\n",my_euid);
printf("Group ID:%ld\n",my_gid);
printf("Effective Group ID:%ld\n",my_egid):
if(my_info)
{
printf("My Login Name:%s\n" ,my_info->;pw_name);
printf("My Password :%s\n" ,my_info->;pw_passwd);
printf("My User ID :%ld\n",my_info->;pw_uid);
printf("My Group ID :%ld\n",my_info->;pw_gid);
printf("My Real Name:%s\n" ,my_info->;pw_gecos);
printf("My Home Dir :%s\n", my_info->;pw_dir);
printf("My Work Shell:%s\n", my_info->;pw_shell);
}
}
3。进程的创建
创建一个进程的系统调用很简单.我们只要调用fork函数就可以了.
#include <unistd.h>;

pid_t fork();
当一个进程调用了fork以后,系统会创建一个子进程.这个子进程和父进程不同的地方只
有他的进程ID和父进程ID,其他的都是一样.就象符进程克隆(clone)自己一样.当然创建
两个一模一样的进程是没有意义的.为了区分父进程和子进程,我们必须跟踪fork的返回
值. 当fork掉用失败的时候(内存不足或者是用户的最大进程数已到)fork返回-1,否则f
ork的返回值有重要的作用.对于父进程fork返回子进程的ID,而对于fork子进程返回0.我
们就是根据这个返回值来区分父子进程的. 父进程为什么要创建子进程呢?前面我们已经
说过了Linux是一个多用户操作系统,在同一时间会有许多的用户在争夺系统的资源.有时
进程为了早一点完成任务就创建子进程来争夺资源. 一旦子进程被创建,父子进程一起从
fork处继续执行,相互竞争系统的资源.有时候我们希望子进程继续执行,而父进程阻塞直
到子进程完成任务.这个时候我们可以调用wait或者waitpid系统调用.
#include <sys/types.h>;
#include <sys/wait.h>;

pid_t wait(int *stat_loc);
pid_t waitpid(pid_t pid,int *stat_loc,int options);
wait系统调用会使父进程阻塞直到一个子进程结束或者是父进程接受到了一个信号.如果
没有父进程没有子进程或者他的子进程已经结束了wait回立即返回.成功时(因一个子进
程结束)wait将返回子进程的ID,否则返回-1,并设置全局变量errno.stat_loc是子进程的
退出状态.子进程调用exit,_exit 或者是return来设置这个值. 为了得到这个值Linux定
义了几个宏来测试这个返回值.
WIFEXITED:判断子进程退出值是非0
WEXITSTATUS:判断子进程的退出值(当子进程退出时非0).
WIFSIGNALED:子进程由于有没有获得的信号而退出.
WTERMSIG:子进程没有获得的信号号(在WIFSIGNALED为真时才有意义).
waitpid等待指定的子进程直到子进程返回.如果pid为正值则等待指定的进程(pid).如果
为0则等待任何一个组ID和调用者的组ID相同的进程.为-1时等同于wait调用.小于-1时等
待任何一个组ID等于pid绝对值的进程. stat_loc和wait的意义一样. options可以决定
父进程的状态.可以取两个值 WNOHANG:父进程立即返回当没有子进程存在时. WUNTACHE
D:当子进程结束时waitpid返回,但是子进程的退出状态不可得到.
父进程创建子进程后,子进程一般要执行不同的程序.为了调用系统程序,我们可以使用系
统调用exec族调用.exec族调用有着5个函数.
#include <unistd.h>;
int execl(const char *path,const char *arg,...);
int execlp(const char *file,const char *arg,...);
int execle(const char *path,const char *arg,...);
int execv(const char *path,char *const argv[]);
int execvp(const char *file,char *const argv[]):
exec族调用可以执行给定程序.关于exec族调用的详细解说可以参考系统手册(man exec
l). 下面我们来学习一个实例.注意编译的时候要加 -lm以便连接数学函数库.
#include <unistd.h>;
#include <sys/types.h>;
#include <sys/wait.h>;
#include <stdio.h>;
#include <errno.h>;
#include <math.h>;
void main(void)
{
pid_t child;
int status;
printf("This will demostrate how to get child status\n");
if((child=fork())==-1)
{
printf("Fork Error :%s\n",strerror(errno));
exit(1);
}
else if(child==0)
{
int i;
printf("I am the child:%ld\n",getpid());
for(i=0;i<1000000;i++) sin(i);
i=5;
printf("I exit with %d\n",i);
exit(i);
}
while(((child=wait(&status))==-1)&(errno==EINTR));
if(child==-1)
printf("Wait Error:%s\n",strerror(errno));
else if(!status)
printf("Child %ld terminated normally return status is zero\n",
child);
else if(WIFEXITED(status))
printf("Child %ld terminated normally return status is %d\n",
child,WEXITSTATUS(status));
else if(WIFSIGNALED(status))
printf("Child %ld terminated due to signal %d znot caught\n",
child,WTERMSIG(status));
}
strerror函数会返回一个指定的错误号的错误信息的字符串.
4。守护进程的创建
如果你在DOS时代编写过程序,那么你也许知道在DOS下为了编写一个常驻内存的程序
我们要编写多少代码了.相反如果在Linux下编写一个"常驻内存"的程序却是很容易的.我
们只要几行代码就可以做到. 实际上由于Linux是多任务操作系统,我们就是不编写代码
也可以把一个程序放到后台去执行的.我们只要在命令后面加上&符号SHELL就会把我们的
程序放到后台去运行的. 这里我们"开发"一个后台检查邮件的程序.这个程序每个一个指
定的时间回去检查我们的邮箱,如果发现我们有邮件了,会不断的报警(通过机箱上的小喇
叭来发出声音). 后面有这个函数的加强版本加强版本
后台进程的创建思想: 首先父进程创建一个子进程.然后子进程杀死父进程(是不是很无
情?). 信号处理所有的工作由子进程来处理.
#include <unistd.h>;
#include <sys/types.h>;
#include <sys/stat.h>;
#include <stdio.h>;
#include <errno.h>;
#include <fcntl.h>;
#include <signal.h>;
/* 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);
}
}
}
你可以在默认的路径下创建你的邮箱文件,然后测试一下这个程序.当然这个程序还有很
多地方要改善的.我们后面会对这个小程序改善的,再看我的改善之前你可以尝试自己改
善一下.比如让用户指定邮相的路径和睡眠时间等等.相信自己可以做到的.动手吧,勇敢
的探险者.
好了进程一节的内容我们就先学到这里了.进程是一个非常重要的概念,许多的程序都会
用子进程.创建一个子进程是每一个程序员的基本要求!

int a=0*FF 这个FF 系统会认为是变量

long a=2L 这个声明是对的。

  • c璇█甯歌闂鏈夊摢浜?
    绛旓細1.涔﹀啓鏍囪瘑绗︽椂锛屽拷鐣ヤ簡澶у皬鍐欏瓧姣嶇殑鍖哄埆銆俶ain(){ int a=5;printf("%d",A);} 缂栬瘧绋嬪簭鎶奱鍜孉璁や负鏄袱涓笉鍚岀殑鍙橀噺鍚嶏紝鑰屾樉绀哄嚭閿欎俊鎭侰璁や负澶у啓瀛楁瘝鍜屽皬鍐欏瓧姣嶆槸涓や釜涓嶅悓鐨勫瓧绗︺備範鎯笂锛岀鍙峰父閲忓悕鐢ㄥぇ鍐欙紝鍙橀噺鍚嶇敤灏忓啓琛ㄧず锛屼互澧炲姞鍙鎬с2.蹇界暐浜嗗彉閲忕殑绫诲瀷锛岃繘琛屼簡涓嶅悎娉曠殑杩愮畻銆俶ain(...
  • C璇█闂缂栫▼闂?
    绛旓細int main(){ int i,j,n=-1;float scores[30],sum=0,temp;printf("璇疯緭鍏鐨勫(0~30)锛");while(n<0 || n>30) scanf("%d",&n);if(!n) return 0;for(i=0;i<n;scanf("%f",&scores[i]),sum+=scores[i],i++)printf("璇疯緭鍏ュ鐢%d鍒嗘暟锛",i+1);printf("%d鍚嶅鐢熺殑骞...
  • C璇█浠g爜闂?
    绛旓細杩欎釜绋嬪簭浣跨敤浜嗕竴涓獁hile寰幆锛屼笉鏂鍔犲厰瀛愮殑鏁伴噺锛岀洿鍒版壘鍒颁竴涓鍚堟潯浠剁殑鏁伴噺銆傛潯浠舵槸鍏斿瓙鏁伴噺闄や互 5銆4銆3銆2銆1 鐨勪綑鏁伴兘涓 1锛屽嵆姣忎釜浜洪兘鑳藉垎鍒颁竴鍙厰瀛愪笖娌℃湁鍓╀綑銆傛渶鍚庯紝绋嬪簭杈撳嚭绗﹀悎鏉′欢鐨勬渶灏忓厰瀛愭暟閲忋俰nclude <stdio.h>int main() { int n = 1, i = 1; while (1) { ...
  • C璇█鐨勫嚑涓闂,璇烽珮鎵嬫寚鏁
    绛旓細1.鍦C璇█涓紝char鍨嬫暟鎹湪鍐呭瓨涓殑瀛樺偍褰㈠紡鏄痏__.A)琛ョ爜 B)鍙嶇爜 C)鍘熺爜 D)ASCII鐮 绛旀鏄疍锛屼絾鏄湪鏌愪簺璧勬枡涓鍒扳滄暟鎹湪鍐呭瓨涓槸浠ヨˉ鐮佸舰寮忓瓨鏀剧殑鈥濓紝杩欎娇鎴戞湁浜涜糠鎯戜笉瑙o紝璇峰悇浣嶄笉鍚濇寚鏁欍2.琛ㄨ揪寮18/2*sqrt(4.0)/8鐨勬暟鎹被鍨嬩负___A)int B)float C)double D)涓嶇‘瀹 绛旀鏄疌锛...
  • C璇█鍩烘湰闂
    绛旓細涓銆C璇█瑙勫畾鎬绘槸浠巑ain()寮濮嬫墽琛岀殑锛堣繖涓嚱鏁颁篃鍙滀富鍑芥暟鈥濓級銆傚洜姝わ紝浣犲彂鏉ョ殑棰樼洰涓殑锛1銆6銆8锛夊彊杩伴兘鏄敊璇殑锛岄兘搴旇閫夋嫨F銆備簩銆佺2棰樹腑锛孋璇█瀵瑰叾鏁版嵁鍦ㄥ唴瀛樹腑鎵鍗犵敤鐨勫疄闄呭瓧鑺傛暟锛岄殢鐫绋嬪簭涓0鏄庣殑鏁版嵁绫诲瀷浠ュ強鏁版嵁鐨勫灏戣屽彉鍖栵紝C璇█鏈韩骞舵病鏈夋槑纭瀹氥傝繖棰樺簲璇ラ塅銆備笁銆佺3棰...
  • C璇█銆傞浮鍏斿悓绗闂銆 楦″厰鎬诲ご鏁癶銆 鎬昏剼鏁颁负f銆傛眰楦″厰鍚勬湁澶氬皯鍙...
    绛旓細鍙互鍙傝冧笅闈㈢殑浠g爜锛堝叿浣撶殑鏁板肩敤鎴峰彲浠ユ牴鎹渶瑕佽繘琛屽畾涔夛級锛歮ain(){ int h=20,int f=50;%(鏍规嵁棰樼洰瑕佹眰瀹氫箟鐨凥 F锛塮or(i=1;i<h;i++){int tuzi=h-i;if(2*i+tuzi*4==f)printf("楦″拰鍏旂殑鏁伴噺鍒嗗埆涓%d%d 鈥,i,c);else i++;} } ...
  • C璇█闂
    绛旓細A锛岀瓑浠蜂簬 char A='B'; 瀛楃b鐨凙SCII鐮佷负98,鏁呭悗鑰呯瓑浠蜂簬 char b=98;C 涓嶅銆 b宸茬粡鏄寚閽堜簡锛&b 鏄 鎸囧悜鎸囬拡鐨勬寚閽堛傝c鏄寚閽堬紝涓嶈兘杩欐牱鍒濆鍖朿銆侱 姝g‘銆闂琛ュ厖锛 D涓轰粈涔堝锛燂紵锛熻繖鏄 C/C++ 鏈甯歌鏈甯哥敤鐨勫垵濮嬪寲鐢ㄦ硶銆 鍙鏈 C/C++ 鐨勫父璇嗭紝灏变笉璇ユ鐤戣繖涓鐐广
  • c璇█闂
    绛旓細鐧惧害鐭ラ亾 > 鐢佃剳/缃戠粶 > 绋嬪簭璁捐 > C/C++娣诲姞鍒版悳钘忓緟瑙e喅 c璇█闂 鎮祻鍒嗭細10 - 绂婚棶棰樼粨鏉熻繕鏈 14 澶 17 灏忔椂 1銆佸湪涓涓狢璇█婧愮▼搴忎腑锛屽繀椤绘湁main鍑芥暟锛屽畠鐨勪綅缃 銆慉锛夊繀椤诲湪鏁翠釜婧愮▼搴忔渶寮濮 B锛夊彲浠ョ敤鍏跺畠鍑芥暟浠f浛 C锛夊彲浠ュ湪浠讳綍浣嶇疆 D锛夊繀椤诲湪鏁翠釜婧愮▼搴忔渶鍚 2銆佸湪C璇█涓...
  • C璇█鎸囬拡闂
    绛旓細涓銆佸鏈夊畾涔塩har y[4]= "321"鍒欒〃杈惧紡 *y+2鐨勫兼槸'5' 銆傚垎鏋愶細y鏄瓧绗︿覆鏁扮粍棣栧厓绱'3'鐨勫湴鍧锛*y鐨勫煎氨鏄瓧绗'3'锛屽啀鍔犱笂2锛屽氨鏄瓧绗'5'锛堜篃鍙互璇存槸瀛楃'5'鐨凙SC鐮佸硷級銆備簩銆 濡傛湁瀹氫箟char z[2][4]={"MAT", "LAB"};,鍒欒〃杈惧紡*(*z+2)鐨勫兼槸 'T'銆傚垎鏋愶細z鏄簩缁村瓧绗...
  • C璇█缂栫▼鍒濆闂
    绛旓細锛1锛夌▼搴忚緭鍑猴細c1=a;c2=b;c1=97;c2=98;鍥犱负锛氫綘鐢%c锛屽氨鏄綘瑕佽緭鍑轰竴涓瓧绗︼紝97鐨刟scii鐮佸氨鏄皬鍐欏瓧姣峚锛98涓篵锛涳紙2锛夊鏋滀綘鎶奵1=197锛宑2=198锛屽簲璇ヤ細鎻愮ず闅愬紡杞崲鍚э紝濡傛灉瀹氫箟char c1,c2锛岄粯璁や负鏈夌鍙风殑char鍨嬶紝鍙栧艰寖鍥翠负-128锝127锛屽洜姝よ緭鍑虹殑鏄197-256=-59,198-256=-58锛岃矊浼肩敤...
  • 扩展阅读:c++编程 ... c语言基础知识梳理总结 ... c语言过程中遇到的问题 ... 大一c语言必背编程题 ... 大一c语言常见问题 ... 关于c语言的讨论问题 ... c语言简单编程题目及答案 ... c语言小程序 ... c语言中经常遇到的问题 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网