![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 50
fujie__
这个作者很懒,什么都没留下…
展开
-
谁会留下换行符?
前几天在做课程设计的过程中,碰到一个小问题,有关于C语言几种标准输入的处理机制,做了如下测试。 1.scanf()的%c#include<stdio.h> int main(){ char a,b; scanf("%c",&a) scanf("%c",&b); printf("%d %d\n",a,b); }输入 a 回车 输出 97 10结论1原创 2017-06-24 18:37:43 · 432 阅读 · 0 评论 -
说几个myshell过程中的思路
本文旨在对自己所写的myshell中的几个思路做以记录 多管道复合 整体的思路是每个管道符隔开的命令将由shell进程创建一个子进程去执行,那么每个管道符隔开的命令之间将会是一系列兄弟进程,因此问题就在于怎么把数据在兄弟进程之间传递,一开始打算使用高端的pipe()函数,但是过程中反复调试总有问题,可能是自己对进程的理解不够深入,最后的解决方案是使用两个临时文件,pipe_w负责写入管道前的命令原创 2017-07-30 22:24:41 · 446 阅读 · 1 评论 -
Linux c文件操作总结
这一周以来一直与Linux的文件操作相关系统调用打交道,其与C语言中的文件操作函数有些许相似但又千差万别.尤其是open()函数的参数,相当复杂,因此作以记录便于查阅. 对于用Linux系统调用进行文件的常用操作作以总结 主要是关于open()系统调用的各个参数做记录.简述:open是UNIX系统(包括LINUX、Mac等)的系统调用函数,区别于C语言库函数fopen。#include<fcnt原创 2017-07-23 23:12:38 · 1747 阅读 · 0 评论 -
写my_ls过程中的几个点
首先是参数的解析,尽管此次仅要求完成ls三个功能选项,但是即便只有三个功能选项,加上n个文件路径的参数, 手动解析这样的参数还是动作有点多. 还好,Linux提供了一个专门用于解析命令的函数:getopt()示例如下:#include<stdio.h> #include<unistd.h> int main(int argc , char ** argv){ int oc; cha原创 2017-07-24 00:25:41 · 596 阅读 · 0 评论 -
Ubuntu下孤儿进程问题
在学习Linux c编程实战的进程控制一章时,书上关于孤儿进程的例子如下:#include<stdio.h> #include<sys/types.h> #include<unistd.h> #include<stdlib.h> int main(){ pid_t pid; pid = fork(); int n = 5; switch(pid){ c原创 2017-07-24 16:42:51 · 814 阅读 · 0 评论 -
Linux下线程同步问题中的互斥锁和条件变量
我们知道多个线程之间有很多内存资源都是共享的,灵活的同时也会造成一些问题,就是当两个线程都要使用同一个资源的时候,例如两个线程同时对一个全局变量进行赋值然后打印,就会出现同步问题,有可能 线程2打印出来的结果实际上是线程1对其赋的值.因此,Linux提供了几种方法用来解决多线程同步问题,在这里主要探究一下互斥锁和条件变量之间的瓜葛.先简单的说一下互斥锁:互斥锁是通过锁机制来实现线程间同步的一种方法.原创 2017-08-04 14:30:45 · 436 阅读 · 2 评论