From 5c870a547dcbeb337d2b18428b2e3a931d8795e3 Mon Sep 17 00:00:00 2001 From: Bjoern Esswein <bjoern.esswein@gmail.com> Date: Tue, 18 Feb 2020 23:46:06 +0100 Subject: [PATCH] added sscanf --- Readme.md | 8 ++++---- Zettel.html | 8 ++++---- fopen.c | 2 +- jbuffer.c | 2 +- listFiles.c | 2 +- sscanf.c | 16 ++++++++++++++++ threadpool.c | 2 +- 7 files changed, 28 insertions(+), 12 deletions(-) create mode 100644 sscanf.c diff --git a/Readme.md b/Readme.md index 45e8c21..7441a06 100644 --- a/Readme.md +++ b/Readme.md @@ -251,7 +251,7 @@ static void sigchldHandler(int sig) { <!-- include (threadpool.c lang=c) --> ```c # include "die.h" -# include "errno.h" +# include <errno.h> # include <pthread.h> # include "jbuffer.h" @@ -349,7 +349,7 @@ BNDBUF *bbCreate(size_t size) { void bbDestroy(BNDBUF *bb) { if(bb == NULL) return; - free(bb->buff);//each does noting if NULL + free(bb->buff);//each does nothing if NULL semDestroy(bb->freeSpaceSem); semDestroy(bb->usedSpaceSem); free(bb); @@ -387,7 +387,7 @@ int bbGet(BNDBUF *bb) { int main() { FILE* file = fopen("../fopen.c", "w"); - if ( file == NULL ) die("Fehler bei der Anpassung der Standardeingabe"); + if ( file == NULL ) die("fopen"); //do stuff @@ -409,7 +409,7 @@ int main() { # define BASEDIR "." -int filter(const struct dirent *dir) { +static int filter(const struct dirent *dir) { if(dir->d_name[0] == '.') { return 0;//filter out .files } diff --git a/Zettel.html b/Zettel.html index 5388d8a..682b85a 100644 --- a/Zettel.html +++ b/Zettel.html @@ -236,7 +236,7 @@ accept</p> <h3>pthread</h3> <p><!-- include (threadpool.c lang=c) --></p> <pre><code class="hljs language-c"><span class="hljs-meta"># <span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">"die.h"</span></span> -<span class="hljs-meta"># <span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">"errno.h"</span></span> +<span class="hljs-meta"># <span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string"><errno.h></span></span> <span class="hljs-meta"># <span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string"><pthread.h></span></span> <span class="hljs-meta"># <span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">"jbuffer.h"</span></span> @@ -330,7 +330,7 @@ accept</p> <span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">bbDestroy</span><span class="hljs-params">(BNDBUF *bb)</span> </span>{ <span class="hljs-keyword">if</span>(bb == <span class="hljs-literal">NULL</span>) <span class="hljs-keyword">return</span>; - <span class="hljs-built_in">free</span>(bb->buff);<span class="hljs-comment">//each does noting if NULL</span> + <span class="hljs-built_in">free</span>(bb->buff);<span class="hljs-comment">//each does nothing if NULL</span> semDestroy(bb->freeSpaceSem); semDestroy(bb->usedSpaceSem); <span class="hljs-built_in">free</span>(bb); @@ -365,7 +365,7 @@ accept</p> <span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>{ FILE* file = fopen(<span class="hljs-string">"../fopen.c"</span>, <span class="hljs-string">"w"</span>); - <span class="hljs-keyword">if</span> ( file == <span class="hljs-literal">NULL</span> ) die(<span class="hljs-string">"Fehler bei der Anpassung der Standardeingabe"</span>); + <span class="hljs-keyword">if</span> ( file == <span class="hljs-literal">NULL</span> ) die(<span class="hljs-string">"fopen"</span>); <span class="hljs-comment">//do stuff</span> @@ -384,7 +384,7 @@ accept</p> <span class="hljs-meta"># <span class="hljs-meta-keyword">define</span> BASEDIR <span class="hljs-meta-string">"."</span></span> -<span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">filter</span><span class="hljs-params">(<span class="hljs-keyword">const</span> struct dirent *dir)</span> </span>{ +<span class="hljs-function"><span class="hljs-keyword">static</span> <span class="hljs-keyword">int</span> <span class="hljs-title">filter</span><span class="hljs-params">(<span class="hljs-keyword">const</span> struct dirent *dir)</span> </span>{ <span class="hljs-keyword">if</span>(dir->d_name[<span class="hljs-number">0</span>] == <span class="hljs-string">'.'</span>) { <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;<span class="hljs-comment">//filter out .files</span> } diff --git a/fopen.c b/fopen.c index 374da72..24371c6 100644 --- a/fopen.c +++ b/fopen.c @@ -3,7 +3,7 @@ int main() { FILE* file = fopen("../fopen.c", "w"); - if ( file == NULL ) die("Fehler bei der Anpassung der Standardeingabe"); + if ( file == NULL ) die("fopen"); //do stuff diff --git a/jbuffer.c b/jbuffer.c index be8c1bd..cfc06aa 100644 --- a/jbuffer.c +++ b/jbuffer.c @@ -45,7 +45,7 @@ BNDBUF *bbCreate(size_t size) { void bbDestroy(BNDBUF *bb) { if(bb == NULL) return; - free(bb->buff);//each does noting if NULL + free(bb->buff);//each does nothing if NULL semDestroy(bb->freeSpaceSem); semDestroy(bb->usedSpaceSem); free(bb); diff --git a/listFiles.c b/listFiles.c index 8309cd8..1959777 100644 --- a/listFiles.c +++ b/listFiles.c @@ -7,7 +7,7 @@ #define BASEDIR "." -int filter(const struct dirent *dir) { +static int filter(const struct dirent *dir) { if(dir->d_name[0] == '.') { return 0;//filter out .files } diff --git a/sscanf.c b/sscanf.c new file mode 100644 index 0000000..855058f --- /dev/null +++ b/sscanf.c @@ -0,0 +1,16 @@ +//#include "die.h" +#include <stdio.h> + +int main() { + char *str = "GET http://www.fau.de/index.php?v=123 HTTP/1.1\r\n\r\n"; + + char host[100]; + char path[100]; + char var[2]; + int version; + + int res = sscanf(str, "GET http://%99[^/]%99[^?]?%1s=%5d HTTP/1.%*[0-1]\r\n\r\n", host, path, var, &version); + if(res != 4) printf("err:%d\n", res); + + printf("Host:%s\nPath:%s\n%s:%d\n", host, path, var, version); +} \ No newline at end of file diff --git a/threadpool.c b/threadpool.c index edc3562..af60bc3 100644 --- a/threadpool.c +++ b/threadpool.c @@ -1,5 +1,5 @@ #include "die.h" -#include "errno.h" +#include <errno.h> #include <pthread.h> #include "jbuffer.h" -- GitLab