какие примеры кода объявляют функцию exec string

Форум

Справочник

Синтаксис

Аргументы

Описание, примеры

Выполняет поиск совпадений в указанной строке. Возвращает массив результатов или null

Если вы хотите просто проверить, есть ли совпадения, используйте для этого метод test или String#search.

Если указан флаг «g», то повторный вызов exec будет давать следующее совпадение.

result1 Вложенный массив совпадений [«abc», «bc», «c»] regexp.lastIndex после result1 3 result2 Вложенный массив совпадений [«aabbcc», «bbcc», «cc»] regexp.lastIndex после result2 10

Например, следующий скрипт выдает все совпадения:

Вы можете вызвать exec при неявном определении объекта RegExp:

Сравните примеры в хелпе с вашим кодом. Я думаю у вас регулярка в кавычках, поэтому и не работает. Мой пример:

var reg = /яхту/i;
var ex = reg.exec(‘Хуй на руль и поехали на ваську смотреть на яхту Обрамовича!’);
document.writeln(ex);

Господа и дамы, помогите пожалуйста :
Есть строка q23123123 bababa q23123123

Как мне выделить строку bababa

я пытаюсь вот так:
s1″>\s*\S*\w*\W*

но мне возвращается «>bababa
возможно ли выделить только bababa

а чем \[a-b]+ не устраивает? если речь о регекспе идет

хм, если известны эти части «q23123123».. я бы сделал вот так:

работает
других способов сходу придумать не могу какие примеры кода объявляют функцию exec stringк сожалению с этим способом пробелы по краям остались.

Источник

Метод exec() в Python

Автор: Кольцов Д · Опубликовано 17.11.2020 · Обновлено 17.11.2020

Метод exec() выполняет динамически созданную программу, которая представляет собой строку или объект кода.

Метод принимает три параметра:

exec() не возвращает никакого значения, он возвращает None.

Пример 1

Пример 2: Разрешить пользователю вводить данные

Если вы хотите получить код Python от пользователя, который позволяет использовать многострочный код (с использованием ‘\ n’), вы можете использовать метод compile() перед использованием exec().

На что обратить внимание?

Рассмотрим ситуацию: вы используете систему Unix (macOS, Linux и т. Д.) И импортировали модуль ОС. Модуль os предоставляет переносимый способ использования функций операционной системы, таких как чтение или запись файла.

Если вы используете в своем коде exec (input()), рекомендуется проверить, какие переменные и методы может использовать пользователь. Вы можете увидеть, какие переменные и методы доступны, используя метод dir().

Ограничение использования доступных методов и переменных в exec()

Чаще всего все доступные методы и переменные, используемые в exec(), могут не понадобиться или даже могут иметь брешь в безопасности. Вы можете ограничить использование этих переменных и методов, передав необязательные глобальные и локальные параметры (словари) методу exec().

Параметры globals и locals опущены

Если оба параметра опущены (как в наших предыдущих примерах), код, ожидаемый от exec(), выполняется в текущей области. Вы можете проверить доступные переменные и методы, используя следующий код:

Передача глобальных параметров

Параметры globals и locals (словари) используются для глобальных и локальных переменных соответственно. Если словарь locals не указан, по умолчанию используется словарь globals. Это означает, что глобальные переменные будут использоваться как для глобальных, так и для локальных переменных.

Передача пустого словаря в качестве глобального параметра

Если вы передаете пустой словарь в качестве глобальных переменных, объекту доступны только __builtins__ (первый параметр для exec()). Несмотря на то, что мы импортировали математический модуль в вышеуказанную программу, попытка доступа к любой из функций, предоставляемых математическим модулем, вызовет исключение.

Обеспечение доступности определенных методов

Здесь код, который выполняется exec(), может также иметь методы sqrt() и pow() вместе с __builtins__.

Название метода можно изменить по своему желанию.

В приведенной выше программе squareRoot() вычисляет квадратный корень (функциональность аналогична sqrt()). Однако попытка использования sqrt() вызовет исключение.

Передача как глобальных, так и локальных словарей

Вы можете сделать необходимые функции и переменные доступными для использования, передав словарь locals. Например:

Здесь только два встроенных метода print() и dir() могут быть выполнены методом exec().

Важно отметить, что exec() выполняет код и не возвращает никакого значения (не возвращает None). Следовательно, вы не можете использовать операторы return и yield вне определений функций.

Источник

семейство функций exec в C

Семейство функций exec заменяет текущий запущенный процесс новым процессом. Он может быть использован для запуска C-программы с помощью другой C-программы. Он входит в заголовочный файл unistd.h. В семействе exec много членов, которые показаны ниже с примерами.

file: указывает на имя файла, связанного с исполняемым файлом.
argv: является массивом символьных указателей с нулевым символом в конце.

printf ( «I am EXEC.c called by execvp() » );

Теперь создайте исполняемый файл EXEC.c, используя команду

#include
#include
#include

// Нулевой завершенный массив символов

/ * Все операторы игнорируются после вызова execvp () как целое

процесс (execDemo.c) заменяется другим процессом (EXEC.c)

Теперь создайте исполняемый файл execDemo.c, используя команду

путь: должен указывать путь к исполняемому файлу.
argv []: является массивом символьных указателей с нулевым символом в конце.

printf ( «I am EXEC.c called by execv() » );

Теперь создайте исполняемый файл EXEC.c, используя команду

#include
#include
#include

// Нулевой завершенный массив символов

/ * Все операторы игнорируются после вызова execvp () как целое

процесс (execDemo.c) заменяется другим процессом (EXEC.c)

Теперь создайте исполняемый файл execDemo.c, используя команду

file: имя файла, связанное с исполняемым файлом
const char * arg и ellipses : описать список из одного или нескольких указателей на строки с нулевым символом в конце, которые представляют список аргументов, доступных для исполняемой программы.

Те же самые C-программы, показанные выше, могут выполняться с функциями execlp () или execl (), и они будут выполнять ту же задачу, то есть заменять текущий процесс новым процессом.

Приведенный выше синтаксис имеет один аргумент, отличный от всех вышеперечисленных членов exec, т.е.
char * const envp []: разрешить вызывающей стороне указывать окружение исполняемой программы через аргумент envp.
envp: Этот аргумент является массивом указателей на строки с нулевым символом в конце и должен заканчиваться нулевым указателем. Другие функции берут среду для нового образа процесса из внешней переменной среды в вызывающем процессе.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Источник

Какие примеры кода объявляют функцию exec string

exec — Исполняет внешнюю программу

Описание

Список параметров

Возвращаемые значения

Для получения вывода исполняемой программы, убедитесть, что параметр output инициализирован и используется.

Примеры

Пример #1 Пример функции exec()

Примечания

Если вы собираетесь передавать функции пользовательские данные, используйте функции escapeshellarg() или escapeshellcmd() для того, чтобы пользователи не смогли обмануть систему, запустив произвольную команду.

Если вы собираетесь использовать эту функцию в программе, работающей в качестве демона, убедитесь, что стандартный вывод функции направлен в файл или другой поток, в противном случае PHP зависнет вплоть до конца выполнения программы.

Замечание: В случае работы в безопасном режиме, вы можете запускать что-либо только в пределах safe_mode_exec_dir. В настоящее время по практическим причинам запрещено использование .. в качестве компонента пути к исполняемому файлу.

Смотрите также

Коментарии

From what I’ve gathered asking around, there is no way to pass back a perl array into a php script using the exec function.

The suggestion is to just print out your perl array variables at the end of your script, and then grabbing each array member from the array returned by the exec function. If you will be passing multiple arrays, or if you need to keep track of array keys as well as values, then as you print each array or hash variable at the end of your perl script, you should concatenate the value with the key and array name, using an underscore, as in:

foreach (@array) print «(array name)_(member_key)_($_)» ;

Then you would simply iterate through the array returned by the exec function, and split each variable along the underscore.

Here I like to especially thank Marat for the knowledge. Hope this is useful to others in search for similar answer!

I too wrestled with getting a program to run in the background in Windows while the script continues to execute. This method unlike the other solutions allows you to start any program minimized, maximized, or with no window at all. llbra@phpbrasil’s solution does work but it sometimes produces an unwanted window on the desktop when you really want the task to run hidden.

start Notepad.exe minimized in the background:

This is the second time this one got me, I thought someone else might find this note useful too.

The solution is to scan all file handles from 3 on up and close them all. Remember that handles 0, 1, and 2 are standard input, standard output, and standard error.

exec strips trailing whitespace off the output of a command. This makes it impossible to capture signifigant whitespace. For example, suppose that a program outputs columns of tab-delimited text, and the last column contains empty fields on some lines. The trailing tabs are important, but get thrown away.

If you need to preserve trialing whitespace, you must use popen() instead.

Same solution can apply to system and passthru as well.

Create a shell script (ex. runscript.sh) which contains the execution line for the script you are trying to run in the background.
The runscript.sh is run by an exec() call without the redirect string, which is now placed in the runscript.sh.

runscript.sh will return almost immediately because output of the original script is redirected, and so will not hang your browser and the script runs fine in the background.

(This is for linux users only).

This small class is made so you can keep in track of your created processes ( meaning start/stop/status ).

You may use it to start a process or join an exisiting PID process.

[NOTE BY danbrown AT php DOT net: The following is a Linux script that the contributor of this note suggests be placed in a file named ‘pstools.inc.php’ to execute a process, check if a process exists, and kill a process by ID. Inspired by the Windows version at http://php.net/exec#59428 ]

Took quite some time to figure out the line I am going to post next. If you want to execute a command in the background without having the script waiting for the result, you can do the following:

First of all: put the full path to the php binary, because this command will run under the apache user, and you will probably not have command alias like php set in that user.

Seccond: Note 2 things at the end of the command string: the ‘2>&1’ and the ‘&’. The ‘2>&1’ is for redirecting errors to the standard IO. And the most important thing is the ‘&’ at the end of the command string, which tells the terminal not to wait for a response.

Third: Make sure you have 777 permissions on the ‘log_file.log’ file

In Windows, exec() issues an internal call to «cmd /c your_command». This implies that your command must follow the rules imposed by cmd.exe which includes an extra set of quotes around the full command:

Current PHP versions take this into account and add the quotes automatically, but old versions didn’t.

Apparently, the change was made in PHP/5.3.0 yet not backported to 5.2.x because it’s a backwards incompatible change. To sum up:

— In PHP/5.2 and older you have to surround the full command plus arguments in double quotes
— In PHP/5.3 and greater you don’t have to (if you do, your script will break)

If you are interested in the internals, this is the source code:

sprintf(cmd, «%s /c \»%s\»», TWG(comspec), command);

It can be found at http://svn.php.net/viewvc/ (please find php/php-src/trunk/TSRM/tsrm_win32.c, the comment system doesn’t allow the direct link).

I was trying to get an acceslist from a remote computer by executing cacls and parse it in php, all in a Windows environment with Apache. First i discovered psexec.exe from Windows SysInternals.

But with the following line, I didn´t get anything, it get hunged, although from the command line it worked nice:

(I added this user to the administrators group to avoid permissions problems but its not recommended. )

It worked! And it may work with IIS too so try it if you have the same poblem.

Hope this helps someone, and sorry for my english

Append «2>&1» to the end of your command, for example:

I tried to execute a command in background under Windows.
After struggling for hours with all these half ready examples I would like to share the syntax I found working (for windows at least). This is not tested under Linux as there are more elegant ways to spawn a process.

Based on the function from Arno van den Brink.

Quotation marks are mandatiory for window title. Otherwise windows thinks this is the program name.

Weired, but «Hey! it’s Windows!» 🙂

Источник

Функции _exec, _wexec

Каждая функция в этом семействе загружает и выполняет новый процесс.

Буква в конце имени функции определяет вариацию.

Remarks

Каждая функция _exec загружает и выполняет новый процесс. Все функции _exec используют одну и ту же функцию операционной системы (CreateProcess). Функции _exec автоматически обрабатывают аргументы строки многобайтовых символов соответствующим образом, распознавая последовательности многобайтовых символов согласно многобайтовой кодовой странице, используемой в данный момент. Функции _wexec — это версии функций _exec с расширенными символами. Поведение функций _wexec идентично их аналогам из семейства _exec за исключением того, что они не обрабатывают строки многобайтовых символов.

Универсальное текстовое сопоставление функций

Процедура Tchar.h_UNICODE и _MBCS не определены_MBCS определено_UNICODE определено
_texecl_execl_execl_wexecl
_texecle_execle_execle_wexecle
_texeclp_execlp_execlp_wexeclp
_texeclpe_execlpe_execlpe_wexeclpe
_texecv_execv_execv_wexecv
_texecve_execve_execve_wexecve
_texecvp_execvp_execvp_wexecvp
_texecvpe_execvpe_execvpe_wexecvpe

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *