Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: bash to c  (Прочитано 540 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн victor00000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
bash to c
« : 16 Сентября 2018, 11:10:07 »
Bash
#!/bin/bash
for i in $0 $@
do
echo "$i"
done
echo "|=| $# |=|"

C
#include <stdio.h>

int main (int ia, char *ca[]){
int i;

for (i=0;i<ia;i++)
puts (ca[i]);

printf ("|=| %d |=|\n",ia-1);
return 0;
}

Выполнить
./test /*

Пользователь добавил сообщение 16 Сентября 2018, 11:58:26:
Bash
#!/bin/bash
g="/run"
for i in $0 $@
do
echo "$i"
done | grep "$g"
echo "|=| $# |=|"
unset g

C
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main (int ia, char *ca[]){
char *g = strdup ("/run");
int i;

for (i=0;i<ia;i++){
if (strcmp (ca[i],g) == 0)
puts (ca[i]);
}

printf ("|=| %d |=|\n",ia-1);
free (g);
return 0;
}

выполнить
./test001 /*
вывод
/run
|=| 53 |=|


Пользователь добавил сообщение 16 Сентября 2018, 17:28:13:
Bash
cat /var/log/syslog | grep "sda"

C
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main (){
FILE *f;
f = fopen ("/var/log/syslog","r");
if (f == 0){
perror ("/var/log/syslog");
return 1;
}
char *g = strdup ("sda");
char *c = malloc (1024);
int i;
while (fgets (c,1024,f) != 0){
for (i=0;i<strlen(c);i++){
if (strncmp (c+i,g,strlen(g)) == 0){
printf ("%s",c);
fflush (stdout);
break;
}
}}
fclose (f);
free (g);
free (c);
return 0;
}


Пользователь добавил сообщение 17 Сентября 2018, 08:58:17:
Bash
echo "Слов нету, это крокодил." | sed 's/ нету,/ есть такую,/g'

C
#include <stdio.h>
#include <wchar.h>
#include <stdlib.h>
#include <locale.h>

int main (int ia, char *ca[]){
setlocale (LC_ALL, getenv ("LANG"));
wchar_t *wc = L"Слов нету, это крокодил.";
wchar_t *ws1 = L" нету,",
*ws2 = L"есть такую,";

int i,j;
for (i=0;i<wcslen(wc);i++){
printf ("%lc",(int) wc[i] );
if ( wcsncmp (wc+i,ws1,wcslen(ws1)) == 0){
for (j=0;j<wcslen(ws2);j++){
printf ("%lc",(int) ws2[j]);
}
i += wcslen (ws1) - 1;
}
}
puts ("");
return 0;
}
« Последнее редактирование: 17 Сентября 2018, 10:45:48 от victor00000 »
Wars ~.o

 

Страница сгенерирована за 0.058 секунд. Запросов: 25.